728x90
Lord of sql injection - Dragon 풀이 |
los 20번 Dragon 풀이입니다.
문제 접근
먼저 필터링 조건을 살펴보면, \ _ . () 으로 상대적으로 적은 필터링입니다.
조금 특이한 점은 쿼리문을 살펴보면, id가 게스트인 계정의 pw를 입력하는데, 구문 앞에 주석처리가 되어있어서
어떤 값을 입력하든 다 주석 처리가 되어서 의미가 없어진다는 것입니다.
$query = "select id from prob_dragon where id='guest'# and pw='{$_GET[pw]}'"; |
문제를 해결하는 조건은
if($result['id'] == 'admin') solve("dragon"); |
admin 계정을 얻어와야합니다. 따라서 지금까지 내용을 정리해보면,
1. pw에 입력하는 값은 주석처리된다.
2. 얻어와야하는 계정은 admin 계정이다.
이 두가지 내용을 종합해보면 사실상 불가능해보입니다. 하지만 이때 사용할 수 있는 방법이 개행문자입니다.
새로운 line으로 가서 주석을 무효화시키고, 새로운 줄을 구성해서 그 줄에서 admin 아이디를 얻어오는 것입니다
입력 쿼리:
pw=%0a% 1 and id ='admin |
결과
728x90
'개인 공부 > WEB' 카테고리의 다른 글
[웹해킹] LOS 22 - (Dark_eyes) (0) | 2021.07.03 |
---|---|
[웹해킹] LOS 21 - (Iron Golem) (0) | 2021.07.03 |
[웹해킹] LOS 19 - (Xavis) (0) | 2021.06.19 |
[웹해킹] LOS 18 - (Nightmare) (0) | 2021.06.19 |
[웹해킹] LOS 17 - (Zombie Assassin) (0) | 2021.06.19 |
댓글