WarGame/Lord of SQL Injection

[LOSI] Lord of SQL Injection Level 16 - Succubus

서큐버스 눈나.... 저번 시간은 assassin문제를 해결하는 방법을 알아보았다. 이번 몬스터는 서큐버스로 코드로 공략법을 생각해보자

 

< 출처 : 위키백과 https://ko.wikipedia.org/wiki/%EC%84%9C%ED%81%90%EB%B2%84%EC%8A%A4 >


코드

id와 pw에 둘 다 다음과 같은 것들이 금지되어 있다. 바로 정답을 알아보자

금지항목 : prob, 언더바(_), 점(.), 역 슬래쉬(\), 작은따옴표(')

 


 

해결방법

 

Answer Url : los.rubiya.kr/chall/XXXX.php?id=\&pw=%20or%201=1--%20;

 

이번 문제는 문자열 안에서 특수문자를 쓰는 원리를 이해하면 쉽다. 프로그램 문자열은 특수문자를 처리하기 위해 역 슬래쉬(\)를 넣게 된다. 따라서 위와 같이 id에 \를, pw에 or 1=1을 넣게 되면 다음과 같이 처리된다.

결과적인 query는 id='' or 1=1--; 이 where의 조건으로 들어간다.


축하한다. SUCUBBUS를 물리쳤다.(헤으응...)