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.