Audit de code

mot de passe obsolète

grep -ri -E "(password|pwd|mdp|pass)" --exclude=*.{ai,crt,css,csv,dat,doc,eml,htm,html,json,js,key,lock,log,mysql,pdf,pem,po,pub,ps,rtf,scss,sql,svg,twig,txt,xml,yml} --color=always -D skip * | grep -E "(md5|sha1) *\("

Utilisation du root

grep -r "'root'" --exclude=*.{ai,crt,css,csv,dat,doc,eml,htm,html,json,js,key,lock,log,pdf,pem,po,pub,ps,rtf,scss,svg,twig,txt,xml,yml} --color=always -D skip *

Note: l’exclude ne contiens pas les fichiers de type sql

SQLI

grep -r -E "(query|select|insert|update|delete)" --exclude=*.{ai,crt,css,csv,dat,doc,eml,htm,html,json,js,key,lock,log,mysql,pdf,pem,po,pub,ps,rtf,scss,sql,svg,twig,txt,xml,yml} --color=always -D skip * | grep -v -E "(quote)"

LFI / RFI

grep -r -E "(include|require)(.*)\\$" --exclude=*.{ai,crt,css,csv,dat,doc,eml,htm,html,json,js,key,lock,log,mysql,pdf,pem,po,pub,ps,rtf,scss,sql,svg,twig,txt,xml,yml} --color=always -D skip *

upload vulnérable

grep -r -E "move_uploaded_file(.*)tmp_name" *

fonction PHP dangereuse

grep -RPn -I "[@ ;=](passthru|exec|shell_exec|system|eval|phpinfo) *\(" --exclude=*.{ai,crt,css,csv,dat,doc,eml,htm,html,json,js,key,lock,log,mysql,pdf,pem,po,pub,ps,rtf,scss,sql,svg,twig,txt,xml,yml} --color=always -D skip  *

debug present

grep -RPn -I "(error_reporting|display_errors|display_startup_errors|print_r|mysqli_error)" --exclude=*.{ai,crt,css,csv,dat,doc,eml,htm,html,json,js,key,lock,log,mysql,pdf,pem,po,pub,ps,rtf,scss,sql,svg,twig,txt,xml,yml} --color=always -D skip  *

fichier dangereux

find ./ -type f -regex ".*\.\(back\|bak\|backup\|dat\|inc\|log\|old\|save\|sql\|temp\|tmp\)" -regex ".*.php\([^/]+\)" -o -iname "*-" -o -iname "*~" | grep -v -E "(htm|html)"

fichier vraiment utile pour le fonctionnement de la prod ?

find ./ -type f \( -regex ".*\.\(3ds\|all-wcprops\|back\|backup\|bak\|bat\|bin\|bugs\|ChangeLog\|class\|cmake\|cpp\|CREDITS\|csv\|dat\|db\|dds\|dll\|DS_Store\|entries\|exe\|gitignore\|h\|inc\|INSTALL\|java\|json\|lab\|log\|Makefile\|md\|mtl\|obf\|obj\|old\|path\|pdb\|phtml\|pptx\|project\|properties\|psd\|py\|save\|scc\|scss\|sdf\|smi\|sql\|stl\|svn-base\|temp\|tmp\|txt\|url\|Vagrantfile\|wiki\|xlsx\|xml\|yml\)" -o -regex ".*\(bugs\|ChangeLog\|CREDITS\|INSTALL\|Makefile\|README\|Vagrantfile\)$" \)

top des fichiers

find ./ -type f -exec file -b {} \; | cut -d ',' -f 1 | sort | uniq -c -i | sort -n -r

top extension des fichiers

find . -type f -printf "%f\n" | rev | cut -d '.' -f1 | rev | sort | uniq -c -i | sort -n -r

XSS

grep -r -E "echo ._(COOKIE|GET|POST|REQUEST)" --exclude=*.{ai,crt,css,csv,dat,doc,eml,htm,html,json,js,key,lock,log,mysql,pdf,pem,po,pub,ps,rtf,scss,sql,svg,twig,txt,xml,yml} --color=always -D skip *

helpers

test des url des résultats find

<FIND COMMAND> | sed "s~./~$URL/~" | xargs -P 10 curl --head --silent --write-out "%{http_code} %{url_effective}\n" | grep $URL --color=never | grep -v 404