Jump to content
Ganav

Analiza statica pe cod PHP

Recommended Posts

Posted (edited)

Acest tutorial este scris in scopul de a facilita exploatarea vulnerabilitatilor de tip source code disclosure. In numeroase cazuri atunci cand descoperim cod php pierdem timp incercand sa gasim vulnerabilitati care pot contribui la elevarea accesului. Utilitarele pixy si graphiz ne pot face munca mai usoara.

Pixy nu mai este valabil pe site-ul oficial, insa poate fi gasit aici:

Zippyshare.com - pixy.zip

Pixy este un utilitar care citeste fisiere de tip .php si cauta variabile care sunt nesanitizate(nefiltrate). Generaza structuri care reprezinta componentele unor grafuri. Aceste grafuri pot fi desentate cu ajutorul unei aplicatii numite graphiz(graph visualizer) care poate fi descarcat de aici:

Graphviz | Graphviz - Graph Visualization Software

Pixy primeste ca si parametrii de intrare directorul de iesire(unde vor fi scrise structurile grafurilor), tipul de analiza efectuata si fisierele de intrare. Un exemplu de rulare al aplicatiei este prezentat mai jos:

C:\AppLab\labs\pixy\pixy\run-all.bat -o Taint -a -A -g -y xss:sql:file:xsssanit:sqlsanit "C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\test\index.php" 

unde parametrul:

  • -o specifica directorul de iesire(acesta trebuie creat in avans daca nu exista)
  • -a analiza dupa string-ul de apel(precizeaza unde este folosita variabila nesanitizata in functii)
  • -A analiza dupa alias
  • -g nu folosim variabile globale
  • -y tipul analizei

Exemplul de mai sus a fost rulat pe windows. Calea catre "run-all.bat" poate fi adaugata in variabila de mediu %PATH%. Astfel, pixy poate fi rulat din orice director.

Pentru a genera grafurile apelam graphiz in felul urmator:

for i in *_min.dot; do dot -Tjpg $i > Graphs/$i".jpg"; done

Comanda de mai sus selecteaza toate fisierele care se sfarsesc cu string-ul "_min.dot", apeleaza graphiz(caruia ii furnizeaza numele/calea fisierelor .dot) si scrie rezultatele in directorul Graphs folosind extensia .jpg. Am folosit cygwin deoarece bash >> dos.

https://www.cygwin.com/

Putem si aici include calea programului in variabila de mediu %PATH%.

Daca totul s-a efectuat cum trebuie, in directorul de iesire ar trebui sa avem un set de imagini care contin grafuri ale caror noduri contin numele fisierului in care se gaseste variabila, numele variabilei si unde este folosita in etapele ulterioare ale aplicatiei.

Edited by Ganav
  • Upvote 1

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...