ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Webhacking.kr] Challenge 59
    Wargame/Webhacking.kr 2023. 5. 7. 10:47
    반응형

    Challenge 59를 풀어보자.

     

    문제 화면을 보면 view-source 링크와 표가 보인다.

    표 안에는 입력을 할 수 있는 네 개의 칸이 보이고, 두 개의 제출 버튼이 있다.     

    <Challenge 59의 문제 화면>

     

    문제의 페이지 코드를 보면, SQLi 문제인 것을 볼 수 있다.

    간단하게 설명하자면, id와 phone을 입력해 가입을 하고 lid와 lphone으로 admin의 lv를 조회를 하면 된다.

    가입 과정에서 id에는 admin이, phone에는 그보다 많은 것들이 필터링되고 있다.

    조회 과정에서는 필터링되는 것이 없으니, 가입을 잘만 하면 문제가 해결될 것 같다.

    <Challenge 59의 페이지 코드>

     

    우선 가입과 조회를 테스트해보도록 하자.

    id에 test를, phone에 123을 넣고 가입을 하였다.

    그 후 같은 입력값으로 조회를 해보니 id는 test로, lv는 guest로 출력이 되는 것을 확인할 수 있다.

    <test 가입 및 조회 결과>

     

    가입하는 과정에서 insert 구문의 value의 마지막이 lv 값인데, 그게 guest로 고정이 되어있다.

    그리고 admin을 입력하는 것이 막혀 있는데, 이 두 가지만 해결하면 문제를 풀 수 있다.

     

    첫 번째로, lv 값은 가입을 할 때 lv를 미리 넣고 뒤의 구문을 주석처리하는 것으로 해결된다.

    두 번째로, admin을 입력하는 것이 막혀 있는데 많은 함수들도 같이 필터링이 되고 있다.

    그런데도 사용할 수 있는 함수들도 있는데, 그 중 reverser를 이용해보도록 하자.

     

    아래의 사진처럼 id에 admin을 반대로 적은 nimda를 입력한다.

    그리고 phone에 '1,reverse(id)) -- '를 입력해 구문을 끝까지 입력하지 않고, 주석 처리해준다.

    <admin으로 가입하기>

     

    이렇게 가입을 한 후, 똑같이 입력해 조회를 해보면 문제가 해결된다.

    <Challenge 59 문제 완료>

    반응형

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

    [Webhacking.kr] Challenge 10  (0) 2023.05.07
    [Webhacking.kr] Challenge 33  (0) 2023.05.07
    [Webhacking.kr] Challenge 42  (0) 2023.05.07
    [Webhacking.kr] Challenge 23  (0) 2023.05.07
    [Webhacking.kr] Challenge 20  (0) 2023.05.07

    댓글

Designed by Tistory.