본문 바로가기
Webhaking/WebHaking CTF

[Webhaking.kr] old 27번

by Y06 2020. 11. 5.

old 27번에 들어갔더니 위와 같은 화면이 나왔다. 18번 문제와 같이 간단하게 sql injection이라는 것을 알 수 있엇다. view-source에서 코드에 들어가 중요한 부분을 확인해보았다.

 

여기서 보면 id 값이 admin이면 풀리는 문제인 거 같다.

위의 코드에서 쿼리문 부분을 보면 id가 guest로 지정되어 있는 것을 볼 수 있다.

또한, 주석으로 admin's no=2라고 되어있다.

저 주석이 힌트를 알려주고 있다.

 

아무 숫자나 넣어보니 quest라고 뜬다.

힌트로 나온 2를 넣어보니 querry error라는 문장이 뜬다.

 

주석에서 admin의 no 값이 2라고 했기 때문에 쿼리문을 조작해서 no의 값을 2로 만들 수 있을 것 같다.

 

0) or no like 2

 

preg_match() 필터링을 위해서 위와 같은 쿼리문을 작성했다.

하지만 띄어쓰기 또한 우회된다는 것을 우리는 18번 문제를 풀면서 알 수 있었기 때문에 띄어쓰기에 %09 문자를 입력해줄 것이다.

그러면 0)%09or%09no%09like%092 라는 문장이 나온다.

No 부분의 닫는 괄호인 ')'가 아직 살아있기 때문에 그 뒤의 부분을 주석처리히면 우회할 수 있다.

?no=0)%09or%09no%09like%092--%09를 입력창이 아닌 url에 넣어서 문제를 해결할 것이다.

18번 문제와 비슷한 유형이기 때문에 우리가 제출창에 구한 값을 넣으면 다른 값으로 인코딩 되어서 들어가기 때문이다.

 

문제를 풀었다!

'Webhaking > WebHaking CTF' 카테고리의 다른 글

[Webhaking.kr] old 22번  (0) 2020.11.09
[Webhaking.kr] old 9번  (0) 2020.11.09
[Webhaking.kr] old 18번  (0) 2020.11.05
[Webhaking.kr] old 17번  (0) 2020.10.02
[Webhaking.kr] old 14번  (0) 2020.10.02