ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Webhacking.kr] Challenge 56
    Wargame/Webhacking.kr 2023. 5. 7. 11:34
    반응형

    Challenge 56을 풀어보자.

     

    문제 화면을 보면 게시판을 보여주는 것 같다.

    두 개의 게시물이 있는데, secret이 1과 0인 것을 보면 admin의 게시물은 볼 수 없을 것 같다. 

    그리고 아래에 search 칸이 있는데, 이것으로 게시물을 조회하는 것 같다.

    <Challenge 56의 문제 화면>

     

    그래도 게시물을 들어가보도록 하자.

    먼저 admin의 게시물은 readme를 들어가보니, access denied가 출력되면서 back 링크가 나타난다.

    <readme 게시물 확인 실패>

     

    그리고 guest의 게시물인 hi~를 들어가보니, hello~라는 문구와 back 링크가 나타난다.

    이것들을 힌트로 문제를 해결해야 된다.

    <hi~ 게시물 확인>

     

    이런저런 시도를 해서 알아낸 것이라 사진은 없지만, 이 문제는 search를 이용해 해결해야 한다.

    제목이나 id가 아닌 그 게시물의 내용을 확인해 일치하는 게시물이 있는지를 조회한다.

    즉 hello~를 입력하면 guest만 조회가 되는데, 중요한 건 hel 처럼 일치하는 부분만 입력을 해도 된다는 것이다.

     

    이것을 이용해 Blind SQLi를 시도해보도록 하자.

    자동화를 통해 효율적으로 문제를 해결할 수 있도록 코드를 작성해보자.

     

    먼저 게시물 내용의 길이를 알아보도록 하자.

    아래와 같이 코드를 작성하는데, '_' 문자를 이용해 한 글자가 있는지 확인할 수 있다.

    '_' 문자를 게시글의 길이만큼 입력을 해주면 admin의 게시글이 몇 글자인지 알 수 있다.

    <admin 게시물의 길이 확인 코드>

     

    다음으로, 들어가는 문자를 확인해 정답을 알아보도록 하자.

    위에서 특수문자들을 입력했는데, 그 중 '_'과 '%'는 문제가 될 수도 있으니, 리스트의 가장 마지막에 넣었다.

     

    이 코드를 실행하면 admin 게시물의 내용이 무엇인지 알 수 있다.

    <admin 게시물의 내용 확인 코드>

     

    출력된 내용을 메인 페이지의 Auth에 입력을 해주면 문제가 해결된다.

    <Challenge 56 문제 완료>

     

    그런데, 한 가지 문제되는 것은 ag{...으로 시작하게 출력이 된다는 것인데, 리스트에서 a가 가장 앞에 있어서다.

    이것도 순서를 바꾸면 해결할 수 있지만, 눈치껏 flag로 시작한다는 것을 알 수 있다.

    반응형

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

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

    댓글

Designed by Tistory.