Wargame/webhacking2017. 6. 18. 20:25

webhacking.kr 39번 문제를 보면 다음과 같다.

입력창 말고는 아무것도 없다.

우선 페이지 소스를 보면 다음과 같다.

index.phps가 힌트로 주어져있다.

일단 들어가 보도록 하자.

소스가 나와 있다. 분석을 해보자.


pw 변수에는 물음표가 문자열로 저장되어 있다.

POST 방식으로 받은 id에 값이 있으면 " \ "는 없애고, " ' "는 " '' "로 바꾼다.

substr() 함수를 이용해 id 값을 15글자로 잘라낸다.

select 문으로 데이터를 가져온다.

가져온 데이터가 "good"이면 문제가 풀린다.

그런데 select문을 자세히 보면 " ' "가 안닫혀 있다.

즉, 입력할 때 '를 반드시 입력해야 한다는 것이다.

하지만 " ' "를 입력하면 " '' "로 변환되기 때문에 문제가 된다.

어떻게 해야 할까 고민하면서 코드를 다시 보니

substr()함수를 이용해 15글자를 잘라낸다.

즉, 15번째 글자가 " ' "이면 총 16글자가 되며 마지막 두글자는 " '' "이다.

하지만 substr() 함수를 이용해 15글자로 잘라내기 때문에 " ' "를 입력할 수 있다.


이를 이용해 문제를 해결하면 된다.

admin         ' 을 입력하면 다음과 같이 문제가 풀린다.


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

[webhacking.kr] 49번 문제  (0) 2017.06.18
[webhacking.kr] 46번 문제  (0) 2017.06.18
[webhacking.kr] 38번 문제  (0) 2017.06.18
[webhacking.kr] 35번 문제  (0) 2017.06.18
[webhacking.kr] 23번 문제  (0) 2017.06.09
Posted by Imp3rio