Introduction aux attaques sur le WEB
Drahoxx
Quelques failles : SQLi, LFI, XSS, idor
Les bases du web : Client/Serveur, Reverse-Proxy, Backend/Frontend, GET/POST, etc.
WU :
Web par Mika
Les challenges de Mika !
Drahoxx
# LES BASES DU WEB
Drahoxx
# LES BASES DU WEB
Drahoxx
FRONT - END
BACK - END
# LES BASES DU WEB
Drahoxx
http://abc.lan/
# LES BASES DU WEB
Drahoxx
http://abc.lan/
# LES BASES DU WEB
Drahoxx
http://abc.lan/user
Décodage
Requête SQL
Résultat SQL
Réencodage
# LES BASES DU WEB
Drahoxx
"C'est la méthode la plus courante pour demander une ressource. Une requête GET est sans effet sur la ressource, il doit être possible de répéter la requête sans effet." ~ Wikipédia
# LES BASES DU WEB
Drahoxx
https://www.google.com/search?channel=fs&client=ubuntu-sn&q=test
Protocol : HTTPS
Host : google.com
Endpoint : /search
Parameters :
- channel=fs
- client=ubuntu-sn
- q=test
# LES BASES DU WEB
Drahoxx
"Cette méthode est utilisée pour transmettre des données en vue d'un traitement à une ressource (le plus souvent depuis un formulaire HTML). " ~ Wikipédia
# LES BASES DU WEB
Drahoxx
http://192.168.0.2/login
Protocol : HTTP
Host : 192.168.0.2
Endpoint : /login
Parameters :
- username=abc
- password=Sup3r...
-> username=abc
-> password=Sup3rP@sswd
# LES BASES DU WEB
Drahoxx
# LES BASES DU WEB
Drahoxx
http://abc.lan/user
Décodage
Requête SQL
Résultat SQL
Réencodage
Injection dans une requête SQL (SQLi = SQL injection)
# LES BASES DU WEB
Drahoxx
result = cur.execute(f"SELECT uid FROM users WHERE username='{rq_username}' and password='{rq_passwd}';").fetchone()
# LES BASES DU WEB
Drahoxx
"SELECT uid FROM users WHERE username='{rq_username}' and password='{rq_passwd}';"
"SELECT uid FROM users WHERE username='Toto' and password='Sup3rP@ssW0rd';"
# LES BASES DU WEB
Drahoxx
rq_username = "Toto" rq_passwd = "Sup4rP@ssw0rd"
"SELECT uid FROM users WHERE username='Toto' AND password='Sup3rP@ssW0rd';"
# LES BASES DU WEB
Drahoxx
rq_username = "' OR 1=1-- -" rq_passwd = "aaa"
"SELECT uid FROM users WHERE username='' OR 1=1-- -' AND password='aaa';"
"SELECT uid FROM users WHERE username='' OR 1=1-- -' AND password='aaa';"
# LES BASES DU WEB
Drahoxx
https://moodle.univ-ubs.fr/course/view.php?id=2550
Modification d'un paramètre numérique pour réaliser une actions.
https://gcc-ensibs.fr/users/reset_password/133 https://gcc-ensibs.fr/users/reset_password/1 <- reset admin
# LES BASES DU WEB
Drahoxx
Cross-site Scripting, envoyer du code executable en front-end à d'autres utilisateurs
- Redirection - Vol de cookies - Suppression compte - ...
# LES BASES DU WEB
Drahoxx
Code normal
Code injecté
# LES BASES DU WEB
Drahoxx
Local-File Inclusion, accéder à des fichiers arbitraires
# LES BASES DU WEB
Drahoxx
https://cmde.cyber-range.lan/index.php?file=login.php
https://cmde.cyber-range.lan/index.php?file=../../../../etc/passwd
# LES BASES DU WEB
Drahoxx
Place à Mika