DongDD's IT

[webhacking.kr] Level 27 본문

Wargame/webhacking.kr

[webhacking.kr] Level 27

DongDD 2017. 8. 21. 14:11

[webhacking.kr] Level 27


문제에 친절하게 SQL INJECTION이라고 써있는 것을 보아 SQL INJECTION 문제인것 같았다.



GET방식으로 no를 보내는 것으로 보이고 index.phps를 보라고 써있었다.




소스코드를 보니 Level 18번 문제와 비슷한 형식으로 되어있었다.

저번과 마찬가지로 필터링이 들어가있고 해당 쿼리를 실행해 select으로 얻어오는 것이 admin이면 통과하는 것처럼 보였다.


필터링 확인을 해보기 위해 일단 '1 or 1 = 1'을 입력해보았다.



no hack이라고 나오는 것을 보아 필터링에 걸린 것을 알 수 있었다.

limit, \t, (, = 등 여러가지 필터링이 걸려있어 일단 공백을 통과해보기로 했다.

저번에 풀었던 비슷한 문제에 걸려서 사용했었던 '%0D'를 사용해보았다.




=을 어떻게 해결해야할까 생각하다가 like가 떠올라서 사용해보았다.




like를 사용했더니 무사히 통과하는 것 같았다. 하지만 guest라고 나와서 혹시 정렬하면 되지 않을까하고 시도를 해보았다.



정렬이 답이 아닌 것 같았다. 그래서 실제 mysql에서 query를 실행해본결과 괄호때문에 

(1 or 1 = 1)이 1로 처리되어 그냥 1처럼 처리되는 것이라는 것을 알 수 있었다,

어떻게 해야되는지 궁금해서 여러가지 쿼리를 시도해보다가 방법을 찾아낼 수 있었다.

(1) or 1 로 입력하게 되면 그냥 참이되는 것을 알 수 있었다.

(1)도 그냥 1로 인식되기 때문에 통과할 수 있었다.

그래서 위의 방식에서 1 or 1 = 1을 이것으로 고치고 시도해 문제를 통과할 수 있었다.












**************     Answer & Flag     **************






'Wargame > webhacking.kr' 카테고리의 다른 글

[webhacking.kr] Level 4  (0) 2017.08.29
[webhacking.kr] Level 24  (0) 2017.08.29
[webhacking.kr] Level 39  (0) 2017.08.20
[webhacking.kr] Level 26  (0) 2017.07.30
[webhacking.kr] Level 18  (0) 2017.07.29
Comments