Svetainės ypatybės yra tai, kad svetainės failuose nebėra įtartinų failų, o svetainė iš esmės yra ASP+SQLSserverio architektūra. Atidarykite duomenų bazę iš įmonės vadovo ir pamatysite, kad scenarijus Trojos arklys buvo įtrauktas į duomenų bazės scenarijų ir lauko simbolius. Atidarykite svetainės žurnalą ir pamatysite, kad kodas buvo pridėtas naudojant SQL injekciją.
Jokiu būdu, pirmiausia pašalinkite scenarijų per užklausų analizatorių, laimei, įsilaužėlis pakabina arklį vis dar gana reguliarus, galite jį išvalyti vienu metu, parašyti kiekvienos duomenų bazės lentelės valymo scenarijų užklausų analizatoriuje ir tada iš karto vykdyti, gerai, atidarykite svetainę, pasaulis švarus. Kliringo scenarijus pateiktas žemiau:
UPDATE lentelės pavadinimo rinkinio lauko pavadinimas = REPLACE(lauko pavadinimas, įsilaužėlio url ,)
Jei užkrėstas laukas yra tekstas, jis yra varginantis, o konvertavimo proceso metu gali būti prarasti kai kurie duomenys, norint konvertuoti teksto tipą į varchar(8000) naudojant konvertavimo funkciją
Išvalius bus išsaugotas išvalymo sql scenarijus, ar viskas gerai, po dviejų valandų svetainė vėl buvo pakabinta!
Turėjau dar kartą paleisti užklausų analizatorių, paleisti scenarijų ir jį išvalyti. Tai tikrai aišku, bet žmonės visada turi miegoti, todėl ten negalima sugauti paslapčių su įsilaužėliais.
Staiga pagalvojus, kad tai yra sqlserver biblioteka, "Microsoft" turi turėti sprendimą, negalime sustabdyti jos nuo duomenų bazės, kad pakabintume Trojos arklį, bet galime padaryti ją nesėkmingą. Tai su trigeriais!
Kiekvienas, kuris yra susipažinęs su trigeriais, žino, kad sql2000 įterpia ir modifikuoja duomenis į įterptą laikiną lentelę pirmiausia, o tada iš tikrųjų įdeda juos į atitinkamą lentelę. Įsilaužėlių pėdsakų blokavimas yra šioje laikinoje lentelėje!
Įsilaužėlio kabančio arklio kodas turi šį žodį, nes tik tokiu būdu klientas gali atidaryti svetainę tuo pačiu metu, kad patektų į didelę įsilaužėlių svetainę, todėl pradėkime nuo čia.
Paleidimo kodas pateikiamas žemiau:
CREATE paleidiklio pavadinimas
lentelės pavadinime atnaujinimui,įterpti kaip deklaruoti @a varchar(100) - parduotuvės laukas 1
Deklaruoti @b Varchar(100) - Parduotuvės laukas 2
deklaruoti @c varchar(100) -- parduotuvės laukas 3
pasirinkite @a=1 laukas, @b=2 laukas, @c=3 laukas iš įterpto if(@a patinka %script% arba @b like %script% arba @c like %script%) Pradėti ROLLBACK operacija pabaiga
Šio trigerio prasmė yra pirmiausia apibrėžti tris kintamuosius ir išsaugoti tris lengvai saugomus įterptoje lentelėje
Eilutės tipo laukas, kurį įsilaužėlis pradėjo, ir tada naudoti kaip neaiškiai įvertinti, ar reikšmėje yra žodis scenarijus, ir jei taip, atšaukti operaciją nepranešant apie klaidą, kad paralyžiuotų įsilaužėlį ir priverstų jį klaidingai manyti, kad jis pakabino arklį.
Draugai, kurie buvo pakabinti, gali paimti šį scenarijų ir atitinkamai jį modifikuoti, o tai turėtų užtikrinti, kad svetainė nebūtų pakabinta. Be to, taip pat yra teksto tipas laukams, kuriuos lengva pakabinti, tačiau su šiuo tipu susidoroti yra sudėtingiau, ir pastebėta, kad įsilaužėliai dažnai pakabina kelis laukus vienu metu, kad pakabintų stalą, todėl kol vienas laukas nesėkmingas, visas stalas yra nesėkmingas |