![article thumbnail image](https://blog.kakaocdn.net/dn/JR4rZ/btq5ayY78ZV/Sj3kZKCyWaC778RIGUQiBk/img.png)
SQL Injection 문제
정규표현식에서 필터링 되는 것들은 다음과 같다.
# select ( (공백) limit = 0x
이 문제는 18번 문제와 상당히 유사하다.
다만, 정규표현식을 통해 limit 이 필터링 되서 똑같은 방법으로는 되지 않는다.
쿼리를 조작하여 앞의 조건문은 무시하고 원하는 쿼리를 통해 admin 을 갖고 오게끔 해보자.
0) or no like 2--
이를 삽입하면 쿼리문 전체는 다음과 같이 작동할 것이다.
select id from chall27 where id='guest' and no=(0) or no like 2-- )")) or die("query error");
앞의 where id='guest' and no=(0) 에 해당하는 column은 없으므로 무시되고, 뒤의 where no like 2 가 작동하여 admin의 id를 select 할 것이다.
띄어쓰기도 필터링하므로 이를 탭으로 교체하여 url 인코딩하여 주소창에 넣어주면 된다.
※ 정리
① = 대신에 like 사용
② %20(공백) 대신에 %09(탭) 사용
③ #(주석) 대신에 -- 사용
0)%09or%09no%09like%092--%09
--뒤에 빈칸이 없으면 위의 코드에서 --)로 끝나기 때문에 주석처리가 되지 않아 쿼리 오류가 뜨므로 꼭 넣어주도록 한다.
'Wargame > Webhacking.kr' 카테고리의 다른 글
[Webhacking.kr] 32번 (0) | 2021.05.18 |
---|---|
[Webhacking.kr] 28번 (0) | 2021.05.18 |
[Webhacking.kr] 26번 (0) | 2021.05.17 |
[Webhacking.kr] 25번 (0) | 2021.05.17 |
[Webhacking.kr] 24번 (0) | 2021.05.17 |