-
[L.O.S] Level 27 - blue_dragonWargame/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