SQL Injection (sql injection on bypass WAF - dreamhack)

이원찬·2023년 11월 30일
0

Web Security

목록 보기
7/8

https://dreamhack.io/wargame/challenges/415

WAF 는 무엇인가?

WAF는 웹 애플리케이션으로 들어오는 악성 트래픽 또는 앱에서 나가는 무단 데이터를 차단해 일반적인 공격으로부터 웹 애플리케이션을 보호하는 보안 솔루션이다.


문제 코드를 보자.
우선 check_WAF 함수에서 다음과 같은 문자열을 검열한다.
['union', 'select', 'from', 'and', 'or', 'admin', ' ', '*', '/']
하지만 대소문자는 구별하지 않은듯 하다.

어찌어찌 잘 쿼리문을 작성하면 문제를 풀수 있을거 같다.
하지만 공백은 어떻게 우회를 하는가?

index 함수로 보면, uid 값을 post가 아닌 get으로 받고 있다. 즉 요청을 url로 보낼수 있다는 것이다. url은 16진수 형식으로 인코딩한다. 그렇다면 공백을 %90으로, ' 를 %27로 우회할수 있다.
그렇다면 1%27%90Union%90Select%901,2,3%23 으로 할수 있다.

위 문자열을 url로 요청을 보낸다면 FLAG 값이 나온다.

profile
개발과 보안을 공부하고 있습니다.

0개의 댓글