B7ackAnge7z Posted January 6, 2013 Report Posted January 6, 2013 (edited) ?inta: auth-c1Rezolvare: https://rstforums.com/forum/63039-mysql-injection-challenge-authentication-bypass-2.rst#post444299Nu ?tiu cât e de greu, a?a c? v? las pe voi s? decide?i. V? rog s? trimite?i r?spunsul în privat, iar eu voi actualiza postul în caz c? a?i trecut testul cu succes.Date tehnice: tabelul e simplu, are doar 2 câmpuri: name cu o lungime maxim? de 15 caractere ?i, pass unde e p?strat rezultatul func?iei MD5 pentru parola utilizatorului.Baft?!Solvers:19-01-2013, 07:32 PM — tromfilNot?! Mai jos urmeaz? sugestiile pentru rezolvarea acestui challenge.Iat? de ce, dac? dore?ti s? rezolvi testul folosind cuno?tin?ele proprii — opre?te-te din citit!UPD1:Deci, se d? auth-c2 asem?n?tor cu auth-c1, doar c? metoda de securizare e diferit?.Pentru auth-c2 se folose?te func?ia mysqli_real_escape_string($link, $var)UPD2:A?a cum am spus, pentru auth-c1 este folosit? alt? metod? de securizarea, fiind utilizat? func?ia preg_replace('#[^\w]#', '', $var) Edited May 3, 2013 by B7ackAnge7z UPD3 Quote
B7ackAnge7z Posted January 16, 2013 Author Report Posted January 16, 2013 Buuuun — au fost câ?iva mai îndr?zne?i, dar din p?cate niciunul nu a reu?it s? rezolve acest challenge. Nici nu mai vorbesc despre domnii ce folosesc Acunetix’u ?i alte mega-tool-uri crezând c? un challenge creat manual, poate fi rezolvat într-un mod automat.Deci, al treilea update îl las în comentarii pentru a atrage din nou aten?ia tuturor asupra acestui challenge. Sper c? ?ti?i ceva MySQL, pu?in? Englez? ?i v? place s? citi?i printre rânduri. Baft?! Quote
B7ackAnge7z Posted January 17, 2013 Author Report Posted January 17, 2013 Nu da noi indicii. Vreau s? v?d dac? pot s?-i fac ?i eu ceva. Mersi.Baft? Vreau doar s? atrag aten?ia, c? trebuie s?-mi trimite?i rezolvarea la auth-c1. Cel de-al doilea, auth-c2, e prea simplu ca s? fie acceptat (îns?, cred c? ar fi bine s? începe?i cu acesta).ps. Dac? nu rezolv? nimeni (sau dac? nu intervine nimic/nimeni), peste câteva zile voi ad?uga ?i întregul MySQL query. Quote
tromfil Posted January 19, 2013 Report Posted January 19, 2013 M? las b?tut.Probabil e ceva encoding / vulnerabilitate la nivel de func?ie, dar n-oi testa tot. N-am intrat pe server la tine, ci doar am încercat pe local, pentru c? întotdeauna asta ajut? la cât mai pu?ine loguri.Deci... ceva nout??i sau explici direct? Quote
B7ackAnge7z Posted January 19, 2013 Author Report Posted January 19, 2013 Probabil e ceva encoding / vulnerabilitate la nivel de func?ieNu domnule, totul e mult mai simplu. Vezi c? acolo era ceva legat de Englez? ?i verbul „a place”. Quote
tromfil Posted January 19, 2013 Report Posted January 19, 2013 Nu zic de 2, c? nu m-am uitat la acela. La al doilea nu ai voie spa?ii, deci degeaba folosesc LIKE. Quote
B7ackAnge7z Posted January 19, 2013 Author Report Posted January 19, 2013 deci degeaba folosesc LIKE.Dar dac? nu m-am referit la faptul c? trebuie s? folosi?i LIKE? Poate acest „verb” este folosit deja de c?tre aplica?ie? Totu?i, încearc? s? treci de auth-2, c?ci e mult mai u?or. Quote
tromfil Posted January 19, 2013 Report Posted January 19, 2013 (edited) auth-c1c0ngratzYou have logged in successfullyFoarte interesant. Ai zis c? 2 e mai lejer. Poate-l voi încerca ?i pe el în cele din urm?, de?i lenea e mare.Amuzant. ?i la 2 merge acela?i lucru, deci acelea?i tabele.c0ngratzYou have logged in successfully Edited January 19, 2013 by tromfil 1 Quote
B7ackAnge7z Posted January 19, 2013 Author Report Posted January 19, 2013 Deci doamnelor ?i domnilor,v? prezint persoana ce reu?it s? rezolve acest challenge — tromfil.M? bucur nespus. Jos p?l?ria.Foarte interesant. Ai zis c? 2 e mai lejer. Poate-l voi încerca ?i pe el în cele din urm?, de?i lenea e mare.Yep-yep-yupiiii! Bravo! ><Vezi ?i auth-2 — o s?-?i plac?. Quote
tromfil Posted January 19, 2013 Report Posted January 19, 2013 Am editat. ?i la 2 e la fel.ps: N-am vrut s?-?i las prea multe loguri. Sunt doar 2 IP-uri, niciunul personal. Nu de alta, dar mi-e c? n-ai loc din cauza celor cu Acunetix, Havij etc. Requesturi c?tre server: Aproximativ 30 de toate. Ca idee: Tot timpul încerca?i s? reface?i mediul în care dori?i s? intra?i ?i apoi accesa?i direct. Quote
B7ackAnge7z Posted January 19, 2013 Author Report Posted January 19, 2013 Am editat. ?i la 2 e la fel.Da, sunt exact ambele scripturi acceseaz? aceea?i baz? de date. Doar c? la 2 e mult mai simplu.Nu de alta, dar mi-e c? n-ai loc din cauza celor cu Acunetix, Havij etc. Da-da Au mai fost ?i persoane care au b?gat sintaxe XSS ?i LFI.Ca idee: Tot timpul încerca?i s? reface?i mediul în care dori?i s? intra?i ?i apoi accesa?i direct.Foarte corect, îns? nu tot timpul e posibil a?a ceva Quote
B7ackAnge7z Posted May 3, 2013 Author Report Posted May 3, 2013 Rezolvarea acestui challenge:MySQL query pentru ambele teste:"SELECT * FROM users WHERE name LIKE '{$name}' and pass LIKE '{$pass}'";Chiar dac? pentru auth-c1 func?ia preg_replace() elimin? majoritatea caracterelor ce pot fi folosite la un SQL injection, ne r?mâne caracterul „_” care pentru operatorul LIKE nu este decât „orice caracter”. Acum, ?tiind c? avem un câmp de maxim 15 caractere pentru „username” ?i 32 (hash-ul MD5) pentru „password”, putem trece testul foarte u?or. Cu un simplu brute-force pentru „username” folosind _ __ ___ etc. ?i 32 sublinii pentru „password” trecem de autorizare f?r? a ?ti parola ?i numele utilizatorului:username : _______password : ________________________________Pentru auth-c2 e ?i mai simplu — folosim caracterul „%” f?r? a ne gândi la lungimea numelui de utilizator sau a hash-ului MD5 (pentru ne?tiutori — „%” reprezint? orice secven?? de caractere). Deci:username : %password : %ps. Scuze pentru întârziere ?i eventualele gre?eli. Quote