ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [L.O.S] Level 27 - blue_dragon
    Wargame/L.O.S 2022. 12. 30. 03:12
    반응형

    Level 27 - blue_dragon을 풀어보자.

    코드를 잘 살펴보면 문제를 풀 수 있다.

     

    id와 pw에 값을 넣어야 하는데, 싱글쿼터(')와 역슬래시(\)가 필터링되고 있다.

    저것들을 넣지 않고 해결할 수 있을까??

    <blue_dragon의 php 코드 내용>

     

    아무리 봐도 저것들을 넣지 않고는 문제를 해결할 방법이 생각나지 않는다.

    여기서 생각을 좀 바꿔보자.

    싱글쿼터와 역슬래시가 필터링되는 것은 쿼리가 입력된 후 result 에서이다.

    그렇다면 쿼리의 입력은 정상적으로 되고, 그 이후 동작하는 것을 보면 되지 않을까?

     

    여기까지 생각을 한 후, Time-Based SQL Injection을 시도해보기로 했다.

    입력을 한 이후, 참일 때 지연되도록 하고 거짓일 때 페이지가 바로 뜨도록 하였다.

    그렇게 하니 공격이 제대로 수행이 되는 것을 확인할 수 있었다.

    <참, 거짓일 때의 시간 지연>

     

    코드를 통해 자동화해보도록 하자.

    먼저 pw의 length를 구해보도록 하자.

    start와 end의 시간 차이를 이용해 length를 구하도록 했고, 그 결과로 8의 길이가 나왔다.

    <pw의 길이를 구하는 코드>

     

    다음으로 pw의 값을 구하는 코드를 작성하였다.

    방법은 앞에서도 해보았고, 코드 자체도 쉽기 때문에 금세 구할 수 있었다.

    <pw의 값>

     

    이렇게 구한 pw를 입력하니 BLUE_DRAGON Clear!가 출력되며 문제가 해결되었다.

    <blue_dragon 문제 완료>

    반응형

    'Wargame > L.O.S' 카테고리의 다른 글

    [L.O.S] Level 29 - phantom  (0) 2023.01.01
    [L.O.S] Level 28 - frankenstein  (0) 2022.12.31
    [L.O.S] Level 26 - red_dragon  (0) 2022.12.28
    [L.O.S] Level 25 - green_dragon  (1) 2022.12.27
    [L.O.S] Level 24 - evil_wizard  (0) 2022.12.17

    댓글

Designed by Tistory.