user@linuxtrack:~ $ python -c 'print("Soyez les bienvenus !")'

Vous n'êtes pas identifié(e).

#1 30-06-2017 03:19:03

elliot
Membre

Tester son app web des injections sql

Bonjour les gars, cela des jours que je suis entrain de tester la sécurité de mon app web.
Maintenant que je suis aux injections sql, je voudrais savoir comment tester ces genres d'url http://localhost/sib/use/authentication/login.zul avec POST et id. C'est une page d'authentification mais l'injection devrais se passer au niveau de l'url. Je voudrais tester la sécurité de l'url contre les sqli.

Hors ligne

#2 30-06-2017 08:08:50

IceF0x
#! Gourou Linux

Re : Tester son app web des injections sql

Tu veux le faire à la main ou automatisé ?


Utiliser des logiciels propriétaires, c'est comme les plats préparés, on est incapable de dire les conservateurs qu'ils contiennent, on dira toujours que c'est bon, mais ça ne remplacera jamais le repas fait maison par sa maman.
]:D #! Crunchbang & Archlinux GNU/Linux User ]:D

Hors ligne

#3 30-06-2017 12:14:57

elliot
Membre

Re : Tester son app web des injections sql

Je préfère le faire manuellement.

Hors ligne

#4 01-07-2017 00:54:16

WarLocG
#! modo de compet

Re : Tester son app web des injections sql

Coté page de test tu peux utiliser htmlentities(), addslashes(), voir avec des preg_match() ou preg_replace() directement pour filtrer le paramètre envoyé par POST. Les strtolower() ou strtoupper() aident à éviter des requêtes en camelCase (en alternant les min et majuscules). Je sais pas si tu utilise mysqli ou PDO (j'imagine que tu n'utilise normalement plus mysql donc je ne te recommanderai plus de mysql_real_escape_char(), qui au passage est loin d'être une formule miraculeuse), PDO étant le mieux car tu peux préparer tes requêtes SQL. Un petit var_dump($_POST) ca aide aussi a voir ce que tu envois smile

Tu dois bloquer/échapper les caractère ' et " forcément, le + (exemple un +and+1=1 devra être vu comme suspect) qui sert a remplacer l'espace dans la barre d'url aussi puis y a encore plein de combines. Y a les "technques" a base de commentaires (tu bloques --, /* et */), tu peux bloquer le ; qui sert de delimiter par défaut, l'hexadécimal (tu bloques \x27 et \x22 déjà), et ce qui permet d'envoyer des requêtes en hexa (comme 0x et char()). Tu as commandes de benchmark sql qui peuvent etre dangereuses aussi comme benchmark justement. Tu peux éventuellement bloquer le caractère @.
(Edit: avait oublié, le nullbyte peut être vicieux aussi \x00 ) smile

Evidement, tu filtres aussi sur des mots clés comme and, or, union, select, drop, order+by, concat, group_concat, ... et le bien aimé information_schema smile

Ca fait déjà pas mal de choses à bloquer smile

[hint] Si le type de la valeur dans ton champs est un int, tu peux même carrément forcer à sortir une valeur numérique avec intval(), que tu peux coupler avec des modulo pour n'en retenir qu'une certaine taille.

C'est une page d'authentification mais l'injection devrais se passer au niveau de l'url. Je voudrais tester la sécurité de l'url contre les sqli.

Si c'est un POST tu ne l'auras pas sous forme de paramètres dans l'url, ca c'est pour GET. Pour récupérer les données qui passent par méthode POST en live tu as des extensions comme TamperData. Sinon tu peux tester d'envoyer du POST en ligne de commande (via curl ou wget par exemple) ou via des scripts python, ruby, perl (en jouant avec les socket), php, ajax, ...
Quelques exemples ici:
Ajax -> https://stackoverflow.com/questions/378 … thout-form (Darin Dimitrov).
PHP -> https://stackoverflow.com/questions/106 … -html-form (ilanco) (/!\ non testé donc je sais pas ce que ca vaut)

Et THE référence que tu dois avoir (si pas déjà) => OWASP (https://www.owasp.org/index.php/SQL_Injection)

Bon courage smile


Avant de poser vos questions, jeter un oeil ici
Mon CodeVault et Wiki : ici
Les messages privés envers le staff sont uniquement pour les cas d'urgence ou affaires privées (personnelles). Les demandes se feront exclusivement sur le forum. Merci de respecter cette clause sous peine de sanctions.

Hors ligne

#5 01-07-2017 08:05:45

IceF0x
#! Gourou Linux

Re : Tester son app web des injections sql

Voilà qui est complet, merci WarLocG smile


Utiliser des logiciels propriétaires, c'est comme les plats préparés, on est incapable de dire les conservateurs qu'ils contiennent, on dira toujours que c'est bon, mais ça ne remplacera jamais le repas fait maison par sa maman.
]:D #! Crunchbang & Archlinux GNU/Linux User ]:D

Hors ligne

Pied de page des forums