Utilizarea vulnerabilităților xss la maxim

Toată lumea a cunoscut de mult timp că cele mai frecvente c prin intermediul XSS atacator încearcă să trimită un victime Cookie citește jetoane CSRF pentru a petrece un atac de phishing (crearea unui formular de conectare false), efectuați o acțiune pe numele utilizatorului și alte rude ale țintei de atac (probabil, acest lucru nu este toate posibilitățile, dar acestea sunt toate cele mai cunoscute pe care le cunosc acum).







Utilizarea vulnerabilităților xss la maxim

În acest articol vreau să împărtășesc încă o modalitate de a beneficia de XSS, care pot fi adăugate pe această listă. Trebuie notat că această metodă are un plus - nu schimbă cele precedente, adică poate fi utilizată după ce toate cele enumerate mai sus sunt adăugate.


Scopul acestei metode - pentru a monitoriza paginile în numele utilizatorului, care trece pe site-ul atacatorului, precum și pentru a monitoriza intrarile de la tastatura sale (puteți chiar mișcări și mouse-ul, dar pentru mine, asa ca ar fi redundant, nu este infoy deosebit de util, în cele mai multe cazuri, mai exact) .
Acum, despre beneficiul maxim - cred că algoritmul va fi acesta:

Toate elementele opționale IMHO Lista trebuie efectuată în funcție de situația și prioritățile specifice în ordine, care trebuie să fie realizate prin XSS, ele pot uneori să interfereze unul cu celălalt (dacă încercați să le combinați, sau mai degrabă pentru a efectua una după alta), și de a crește probabilitatea de eșec al exploatării XSS.
Dar aici este primul și ultimul element care trebuie să se facă întotdeauna, în orice scenariu. Partea principală a articolului va fi despre ultimul element din această listă.

Ne apropiem de obiectiv.


îl vom lipsi de această ocazie.

Indicați ideea.

Doar această metodă are limitări, și anume - nu va funcționa dacă raspunsurile serverului web al site-ului au un antet X-Frame-Options cu o valoare DENY. Dar personal, am întâlnit astfel de site-uri literalmente de câteva ori, acum chiar și jumătate din SAMEORIGIN nu a fost pusă în scenă, să nu mai vorbim de o restricție deplină prin DENY.

Analizăm ideea.

Așa cum am menționat mai sus - a decis să împrumute de la BeEF o idee grozavă de coadă pentru executarea comenzilor. De exemplu, au fost analizate paginile, care a aruncat barca atunci când utilizatorul privilegiat urcat la în Panoul de control cu ​​un XSS stocate, ne rezervăm echipa bot - JS-cod, introduceți data viitoare când utilizatorul va merge, apăsați acest buton, scrie aici este valoarea, etc. atunci când utilizatorul vizitează pagina următoare, bot citește comenzi și le execută, iar noi toți nu trebuie să fie la cârmă - foarte convenabil.







Practic, acest bot, desigur, este conceput pentru utilizatorii de stare ai unor site-uri care au "pârghii" suplimentare pentru gestionarea conținutului, alți utilizatori și așa mai departe. Din interogările de pe funcțional puteți vedea că fără partea de server nu poți să faci.

Realizăm ideea.

Această parte a articolului poate fi omisă, în principiu, deoarece descrie pur și simplu procesul de implementare a botului necesar și câteva detalii, în cazul în care cineva dorește să-l modifice sau să-l termine singur. Deși botul de la începutul codului va avea variabile prin care puteți seta unele setări.
În primul rând, algoritmul acțiunilor botului din momentul încărcării:

1) Verificarea prezenței antetului X-Frame-Options: DENY (dacă există, apoi îndoiți tijele de pescuit);
2) încorporarea cadrului și configurarea tuturor componentelor botului;
3) Eliminați scriptul și toate urmele din codul HTML;
4) stabilirea contactului cu secțiunea de sus și începerea transferului de date, răspunzând la răspunsurile (primirea de la serverul echipei);

Primul element nu a fost destul de complet, adică bot verifică numai prima pagină și antetul rădăcină. Faptul este că aceste anteturi sunt de obicei construite de serverul web și pentru toate paginile, odată și foarte rar, că pentru o pagină separată totul se face "manual". Da, și acest titlu în sine este destul de rar. Dar pentru a doua și a treia, nu este nimic de spus, totul va fi mai mic.

Dar, doar în cazul în care codul de bot a realizat posibilitatea de detecție au fost astfel de recurență de încadrare și de prevenire la prima încercare de a adăuga un cadru existent, dar este mai bine să nu se bazează numai pe ea, și scoateți suplimentar codul înainte de a descărca codul bot. Deși nu am întâlnit încă probleme.

Trimiteți codul HTML al paginii.

Ideea a fost deja pusă în aplicare de unii entuziaști, dar pentru mine realizările lor nu se potrivea, dacă numai pentru că cele mai multe dintre ele au fost destul de simplu, care este codul Detectivul al tastei apăsate și cherezString.fromCharCode traduse în simboluri. Dar această metodă o serie de deficiențe - de control cheie de deplasare de tip, de control, spațiu, etc, nu sunt traduse în orice formă (de multe ori doar un simbol gol), interacțiunea dintre taste alfanumerice shiftom incorect este conectat ca acest lucru este necesar pentru punerea în aplicare a programului, și De asemenea, toate tastele presate sunt afișate în majuscule, care este de asemenea corectată programatic.

Ca rezultat, avem un keylogger care detectează corect toate cheile de numere, litere și semnele de bază, lucrează la ambele planuri, reacționează la schimbare și înregistrează toate tastele speciale principale. Este adevărat că unele semne (în partea de sus a seriei digitale, care sunt tipărite atunci când cifrul și cifra sunt apăsate) pe unele mașini pot fi diferite, deoarece acestea au fost implementate de standardul de bază, pe care unele companii le schimba.
Fiecare porțiune a caracterelor presate este stocată de client până când elementul text pierde focalizarea. Apoi, această porțiune este trimisă pe server, unde este stocată într-un fișier text, care va fi creat și în fiecare zi cu o copie nouă, astfel încât să nu existe o creștere a dimensiunilor mari și puteți găsi rapid ceea ce utilizatorul tastase în acel moment.

În plus față de cheile în sine, serverul trimite informații despre elementul în care textul a fost tipărit (adică dacă a fost.







Trimiteți-le prietenilor: