-
[Webhacking.kr] Challenge 39Wargame/Webhacking.kr 2023. 3. 31. 23:50반응형
Challenge 39를 풀어보자.
문제 화면을 보면 view-source 페이지의 링크와 input 값을 받는 곳, 제출 버튼이 있다.
view-source 페이지로 가 소스 페이지를 보도록 하자.

<Challenge 39의 문제 화면> 이번 문제는 SQLi를 이용해 문제를 해결하는 듯하다.
str_replace 함수가 '\\'는 없애고, 작은 따옴표는 두 개로 만든다.
그리고 substr 함수를 통해 입력한 id에서 15번째 문자까지 다시 id에 저장을 한다.
그 후 select 문의 where 절을 통해 id의 길이가 14 미만이며, id가 Post한 id와 일치하면 문제가 해결된다.

<Challenge 39 문제의 소스 코드> 총 15개의 문자를 입력을 할 텐데, 어떻게 입력하는 id를 일치시킬 수 있을까?
위의 소스 코드에서 select 구문의 id 부분을 잘 보면, 작은 따옴표가 한 개만 있는 것을 알 수 있다.
여기서 이 문제를 해결해보도록 하자.
작은 따옴표의 갯수를 맞추기 위해 하나를 입력하면 이것이 두 개가 된다.
그렇다면 이것을 해결하기 위해서는 substr 함수가 id를 15번째 문자까지만 받는다는 것을 이용한다.
마지막 15번째 자리에 작은 따옴표를 입력하면 두 개로 변환이 되더라도 마지막 따옴표가 잘리게 된다.
그리고, 앞에 공백을 입력해줌으로써 char 형식으로 id가 입력되는 것을 이용하면 된다. (Challenge 5 참조)
앞의 정보들을 이용해 답을 입력하자면 input으로 입력할 text는 1 ' 가 될 것이다.

<text 값 입력> 위의 값을 입력하고 제출을 하면 old-39 Pwned!의 알림이 나타나며 문제가 해결된다.

<Challenge 39 문제 완료> 반응형'Wargame > Webhacking.kr' 카테고리의 다른 글
[Webhacking.kr] Challenge 14 (0) 2023.04.09 [Webhacking.kr] Challenge 54 (0) 2023.04.01 [Webhacking.kr] Challenge 16 (0) 2023.03.31 [Webhacking.kr] Challenge 26 (0) 2023.03.31 [Webhacking.kr] Challenge 15 (0) 2023.03.31