ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Webhacking.kr] Challenge 39
    Wargame/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

    댓글

Designed by Tistory.