-
[L.O.S] Level 20 - dragonWargame/L.O.S 2022. 12. 8. 05:20반응형
Level 20 - dragon을 풀어보자.
코드를 살펴보면 pw 파라미터를 이용해 id 파라미터의 값으로 admin을 넣으면 된다.
그런데 기본적으로 id에 guest가 넣어져 있고, 뒤의 입력은 주석 처리가 되어 있다.
그로 인해 페이지에 접속만 해도 Hello guest가 출력되는 것을 볼 수 있다.

<dragon의 php 코드 내용> 이 상태로는 pw에 어떤 값을 넣더라도 주석 처리로 인해 뒤의 쿼리문이 실행되지 않는다.
이것을 해결하기 위해서는 주석이 처리하는 범위를 알아야 한다.
기본적으로 주석 문자는 해당 문자 뒤의 한 줄을 주석 처리한다.
이러한 특성을 이용해 pw의 값을 개행을 한 다음 입력해주면 문제가 해결될 것이다.
sql 구문은 몇 줄에 걸쳐 입력을 하더라도 ';' 문자가 없으면 끝 처리를 하지 않는다.
pw 파라미터에 개행 문자인 %0a를 입력하여 화면에 표시되지는 않지만, 다음 줄에 입력을 해준다.
아래의 사진을 보면 # 뒤는 and pw=''%0a가 되고, 그 이후부터 정상적인 입력이 된다.
주석을 제외하면, id='guest'\n and pw='' or id='admin'#'으로 입력이 된 것과 같다.
입력을 하니 DRAGON Clear!가 출력되며 문제가 해결되었다.

<dragon 문제 완료> 반응형'Wargame > L.O.S' 카테고리의 다른 글
[L.O.S] Level 22 - dark_eyes (1) 2022.12.12 [L.O.S] Level 21 - iron_golem (1) 2022.12.09 [L.O.S] Level 19 - xavis (1) 2022.12.07 [L.O.S] Level 18 - nightmare (0) 2022.12.06 [L.O.S] Level 17 - zombie_assassin (0) 2022.12.05