본문 바로가기

wargame/webhacking.kr

webhacking.kr 18번 문제


안녕하세요 오늘은 webhacking.kr 18번 문제를 풀어보도록 하겠습니다.

이번 문제는 약간 풀 때 이상했던 점이 있는 문제였습니다.


일단 아래는 소스코드입니다.


sql injection을 통해 query의 반환 값이 admin이면 @solve()를 줍니다.

제가 생각 했던 query는 

id='guest' and no=-1 or id="admin"

입니다. 근데 이상하게 이 반환값을 admin으로 안주더라고요

흠.. 왜 그런지는 잘 모르겠습니다만.


문제 풀이 방법은 no를 이용하여 푸는 문제입니다.

no=1일 때는 guest를 출력 해주는데

no에 2를 넣으면 solve를 줍니다.


필터

공백 필터 우회 %0a


query문 해석

id='guest' and no=-1 or no=2

위의 쿼리를 해석하면

(id가 guest이고(and)no=-1)이거나 no가 2인 값

이라고 해석 할 수 있습니다.


guest의 no는 1이기 때문에 id='guest' and no=-1은 거짓이 됩니다.

그러므로 no=2인 값이 반환값으로 돌아오게 되는 것 입니다.




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

webhacking.kr 23번 문제  (0) 2017.06.13
webhacking.kr 21번 문제  (0) 2017.06.13
webhacking.kr 18번 문제  (0) 2017.06.13
webhacking.kr 17번 문제 풀이  (0) 2017.06.13
webhacking.kr 16번 문제  (0) 2017.06.13
webhacking.kr 15번 문제  (0) 2017.06.13