sql injection bypass WAF
2024. 5. 26. 15:12ㆍ웹 해킹/Dreamhack Wargame
SQL Injection 문제. WAF이 붙은 걸로 보아 웹방화벽에서 필터링을 거는 듯하다
Code
# init.sql
init.sql파일에서 flag가 admin의 upw임을 알 수 있다.
# app.py
union, select, from, and, or, admin, space, *, / 에 대해 필터링을 하고 있다.
lower()함수를 사용하지 않았으므로 대문자를 활용하면 우회할 수 있다.
space는 tab을 활용하면 우회할 수 있다.
Happy Path
uid에 값을 입력할 수 있다.
upw값을 구하기 위해서는 해당 sql문으로 구할 수 없으니
UNION으로 upw 속성 테이블을 붙여야겠다.
admin의 upw값을 구하려면 다음과 같이 sql문을 작성하였다.
SELECT * FROM user WHERE uid=’’ UNION SELECT upw FROM user WHERE uid=’ADMIN’
따라서 uid = ’ UNION SELECT upw FROM user WHERE uid=’ADMIN
space ⇒ tab으로 우회하면
uid = ' UNION SELECT upw FROM user where uid='ADMIN
하지만 해당 값을 입력해도 flag값이 출력되지 않는다.
UNION은 column 갯수가 동일해야 가능하기 때문에
뒤의 테이블도 같은 column수를 맞춰줘야한다.
따라서
uid = ' UNION SELECT null,upw,null FROM user where uid='ADMIN
FLAG
'웹 해킹 > Dreamhack Wargame' 카테고리의 다른 글
blind sql injection advanced (0) | 2024.05.26 |
---|---|
sql injection bypass WAF Advanced (0) | 2024.05.26 |
simple_sqli_chatgpt (0) | 2024.05.26 |
XSS Filtering Bypass Advanced (0) | 2024.05.25 |
XSS Filtering Bypass (0) | 2024.05.25 |