WarGame/Lord of SQL Injection

[LOSI] Lord of SQL Injection Level 8 - Troll

이번 포스팅은 preg_match에 일부 특성을 배우는 시간이 될 것이다. 트롤을 만나보도록 하자

<출처 : 위키백과 https://ko.wikipedia.org/wiki/%ED%8A%B8%EB%A1%A4 >


코드

특별하게 보이는 점으로 admin이라는 문자열이 필터링되기 때문에  admin을 쓸 순 없을 거 같다.


해결방법

Answer Url : los.rubiya.kr/chall/XXXX.php?id=Admin

 

어이없어 보여도, 중요한 내용을 담고 있다. 위 php에서 필터 우회로 사용되는 preg_match는 /i옵션이 없으면 대소자를 구별하지 않는다. 따라서 두 번째 preg_match인 /admin/은 Admin이나 ADMIN으로 실행을 안 시킬 수 있다. 또한 DB가 대소자를 구분하지 않으니 금상첨화이다.


이렇게 트롤을 해치운 우리의 다음 목적지는 이름도 무서운 흡혈귀를 만나러 갈 것이다. 이번 문제가 쉬웠다고 생각해도 안일함을 가지지 않길 바란다. 의외로 DB나 코드의 특성을 알아야만 풀 수 있는 문제이다.(필자가 이걸몰라서 엄청 헤매었었다.)