WarGame/Lord of SQL Injection

[LOSI] Lord of SQL Injection Level 10 - Skeleton

조금 느슨해진 풀이가 되었다고 생각할 수 있지만, 쉽게 쉽게 문제를 해결할 수 있다는 것을 문제의 질을 탓하지는 말자. RPG로 보아서 여러분들의 실력이 올라간 반증이다. 이번 시간에는 이미 false값을 검사하는 상황인 Skeleton문제를 보자

<출처 : 아마존 https://www.amazon.com/Learning-Resources-Skeleton-Floor-Puzzle/dp/B0008JIL90>


코드 

특별한점으로는 마지막에 AND1=0가 있어서 쿼리의 앞 조건에 무엇이 들어가던 0개의 레코드가 검사가 된다는 점이다.


해결방법

Answer Url : los.rubiya.kr/chall/XXXX.php?pw=1%27%20or%20id=%27admin%27%20or%20id=%27reducto

 

* DATABASE의 연산자는 AND가 OR보다 높다 *

아시다시피 DATABASE에도 연산자 우선순위라는 것이 있다.

 

일반적인 상황에서 AND는 OR에 우선되게 실행되는데, 이를 이용해서 (guest를 가져오는 false결과 or admin을 가져오는 true결과 or 무작위id를 가져오는 false결과) 조건을 적용한다.


이로써 10마리의 몬스터를 무찔렀다. 다음은 다시 Blind SQL Injection으로 무찔러야하는 몬스터를 만나보겠다.