ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Renewal] webhacking.kr old-21 [250]
    $ 웹 해킹 $/webhacking.kr 2020. 1. 10. 22:46

    문제를 한번 확인해 보겠습니다.

     

    BLIND SQL Injection 이라고 되어 있습니다.

    guest / guest 를 한번 해보겠습니다.

     

    login success 라고 출력이 됩니다.

     

    그렇다면 admin에 1234를 입력해 보면 아래와 같습니다.

     

    login fail 이라고 출력을 하는 것 같네요

     

    admin / ' or '1=1 를 입력 해보겠습니다.

     

    wrong password 라고 출력이 됩니다.

     

    admin / ' or ' 0 을 입력 해보겠습니다.

     

    login fail 이 출력이 됩니다.

     

    참이면 wrong password , 거짓이면 login fail을 출력하는것 같습니다.

     

    먼저 pw의 길이를 구해야 할 것 같습니다.

     

    admin / ' or length(pw)>0%23 을 URL 로 넣어주면 아래와 같이 출력을 해줍니다.

     

    이 페이로드로 길이를 구하면 되는 것 같습니다.

     

    위의 코드가  pw의 길이를 구하는 코드입니다.

    pw_length is 5 라고 출력을 해줍니다.

     

    이제 pw를 구할차례입니다.

     

    위의 코드를 이용해 보면 값이 나옵니다.

     

    출력된 값은 ghere 입니다.

     

    admin / ghere 로 로그인을 해보면 login fail을 출력합니다.

     

    이런 경우에 데이터 베이스에서 값을 가져올때 알파벳의 우선순위로 인해서 잘못 가져오는 경우가 있습니다.

     

    위 경우에는 ghere가 아니라 there 인데 그이유가 guest / guest 라는 데이터가 들어가 있을 것인데 t보다 g가 먼저 출력되기 때문입니다.

     

    이번에는 admin / there 로 넣어 봤지만.. login fail을 출력합니다.

     

    혹시나 pw의 길이가 5아닐수도 있겠다 싶어서 break 를 출력해 보겠습니다.

     

    실행 결과로 pw_length is 36 이 출력 됬습니다.

     

    아래의 코드를 이용해서 pw를 다시 출력을 해보면 아래와 같이 출력을 합니다.

     

     

    pw는 there_is_no_rest_for_the_white_angel 입니다.

     

    admin / there_is_no_rest_for_the_white_angel 으로 로그인 해보면 아래와 같습니다.

     

    댓글

Designed by Tistory.