„Python“ raskite pažeidžiamą žiniatinklio serverį ir reklamjuostės patraukimą

Turinys

Šioje pamokoje mes kalbėsime apie Reklaminės juostos patraukimas, a technika, naudojama informacijai apie tinkle rastas paslaugas gauti. Dėl to mes galime atrasti tinklo mašinas, kuriose yra paslaugų, turinčių žinomų pažeidžiamumų, jei norime patikrinti pažeidžiamumą, galime pereiti į šį puslapį: CVE.

Norėdami suprasti jo naudojimą, mes pateiksime pavyzdį, jis bandys patikrinti, ar žiniatinklio serveris yra pažeidžiamas (šioje pamokoje mes sutelksime dėmesį tik į žiniatinklį). Įsivaizduokime, kad ieškome 2 tipų pažeidžiamumų, todėl prie teksto failo pridedame šias 2 eilutes (mano failas bus vadinamas pažeidžiamas.txt):

 „Apache“ / 2.4.18 CVE-2016-4979 „Apache“ / 2.3.20 CVE-2016-4438
Toliau įvedu kodą Python, už 3.X versija, o paaiškinimas pateiktas žemiau.
 importuoti http.client host = "localhost" http = http.client.HTTPConnection (host, timeout = 2) http.request ("HEAD", "/") server = http.getresponse (). getheader ('server') pažeidžiamas = atviras ("pažeidžiamas.txt", "r") isVulnerable = Netinkama paslauga pažeidžiamiems: s = service.split ("") if (s [0] in server)): print (host, "has service", s [0], „su galimu pažeidžiamumu“, s [1]) isVulnerable = Tiesa, jei (ne isVulnerable): print (host, „matyt, neturi serverio, pažeidžiamo to, ko ieškote“)
Dabar pamatysime paaiškinimą pagal kodo dalis, pirmiausia importuojame biblioteką http.klientas kad mums to prireiks:
 importuoti http.client
Toliau mes apibrėžiame šeimininkas ir užmezgame ryšį, a laikas baigėsi 2 sekundes.
 host = "localhost" http = http.client.HTTPConnection (priegloba, skirtasis laikas = 2)
Kitas mūsų žingsnis yra padaryti a HEAD tipo užklausa, kuris kūno negrąžins (duomenys, bet mums to nereikia). Ir tada mes gauname atsakymą.
 http.request ("HEAD", "/") serveris = http.getresponse (). getheader ('server')
Dabar atidarysime teksto failą skaitymo režimu (r) su ieškomomis spragomis ir sukuriame loginį kintamąjį, kuris padeda mums sužinoti, ar pažeidimas buvo rastas (tai padės mums parodyti pranešimą, ar ne pabaigoje).
 pažeidžiamas = atviras ("pažeidžiamas.txt", "r") esVulnerable = Netiesa
Šiuo metu mes padarysime ciklą, kuris eis per kiekvieną pažeidžiamą serverį, kurį įdėjome į failą, kad patikrintume, ar jis naudojamas puslapyje, kuriame lankomasi. Metodas naudojamas suskaldyti Norėdami nutraukti eilutę serveryje ir pažeidžiamumą, kaip matėte aukščiau, failas yra atskirtas tuščia vieta.
 už paslaugą pažeidžiamose vietose: s = service.split ("") if (s [0] in server)): print (host, "has service", s [0], "su galimu pažeidžiamumu", s [1]) isVulnerable = Tiesa
Galiausiai uždarome atidarytą failą ir patikriname, ar radome pažeidžiamumą, jei ne, parodome vartotojui pranešimą, kad jis būtų informuotas.
 pažeidžiamas.close () if (not isVulnerable): print (host, "matyt neturi serverio, kuris būtų pažeidžiamas to, ko ieškote") 
Paleiskime jį prieš 2 taikinius, pirmasis yra solvetic.com:

Antrasis ir paskutinis taikinys yra mano mašina, turiu veikiantį „Apache“ serverį, kuris gali būti pažeidžiamas dėl naudojamos „Apache“ versijos.

Jei norime ką nors sužinoti apie pažeidžiamumą, puslapyje, kurį palikau pradžioje, galite ieškoti CVE, kurį galite pamatyti terminale: CVE-2016-4979. Jūs spustelėsite Paieška ir „Donwloads“ ir įveskite identifikatorių Ieškoti pagrindinės CVE kopijos, laukelyje po tekstu pagal CVE identifikatorių ir tada spustelėkite Pateikti.

Atsiranda pažeidžiamumas ir galėsite matyti paaiškinimą, nuorodas, datas ir kt.

Čia pamoka daro išvadą, kad ši technika gali būti taikoma ieškant pažeidžiamų paslaugų ne tik žiniatinklio serveriuose, bet ir vienu metu galite patikrinti kelis pagrindinius kompiuterius, kad nereikėtų jo paleisti kelis kartus, čia dėl paprastumo jis buvo nukreiptas į žiniatinklio serverį ir vieną pagrindinį kompiuterį. Taip pat galite atlikti reklamjuostės patraukimą naudodami „Telnet“ arba „Netcat“, čia yra „Telnet“ naudojimo atvaizdas pašalinant serverį iš mano vietinio kompiuterio:

Pastaba„Windows Telnet“ pagal numatytuosius nustatymus yra išjungtas, jei norite jį suaktyvinti, galite sekti šią pamoką.

Ar jums patiko ir padėjo ši pamoka?Galite apdovanoti autorių paspausdami šį mygtuką, kad suteiktumėte jam teigiamą tašką

Padėsite svetainės plėtrą, dalintis puslapį su draugais

wave wave wave wave wave