문제를 보면 guest 뒤에 주석으로 막혀있어서 pw파라미터에 값을 입력해도 주석으로 처리되어 아무런 의미가 없다.
php코드를 보면 필터로 중요한 문자열이 걸러지지는 않는다.
처음에 고민을 하다가 %0a로 뉴라인을 만들어 주석을 탈출하면되겠다는 생각이 들었다.
처음엔 그냥 %0a 후 or id='admin'#을 입력했으나 Hello guest가 출력되었다.
그래서 로컬 DB에서 비슷하게 환경을 구성했다.
id가 guest 또는 admin일때 출력하는것이기 때문에 guest와 admin이 둘다 출력되면서 guest가 admin보다 위에 저장되어 있어서 guest가 출력된것이다.
그래서 guest가 거짓이 되도록 뒤에 and 연산자를 이용해 false를 리턴하게 한 후 or로 id='admin' 을 붙이니 admin이 출력되면서 문제가 풀린다.
'Wargame > lord of sqlinjection' 카테고리의 다른 글
Lord of SQLinjection dark_eyes (0) | 2017.08.08 |
---|---|
Lord of SQLinjection iron_golem (0) | 2017.08.06 |
Lord of SQLinjection nightmare (0) | 2017.08.05 |
Lord of SQLinjection succubus (0) | 2017.08.04 |
Lord of SQLinjection zombie_assassin (0) | 2017.08.04 |