profile image

L o a d i n g . . .

article thumbnail image
Published 2021. 5. 17. 23:00

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
복사했습니다!