이번 문제는 id와 pw를 입력받는 문제인데 where절에 id='{$_GET[id]}' and pw='{$_GET[pw]}'
으로 들어간다.
문제는 두 파라미터가 '
을 필터링을 하고 있는 것이 문제이다.
인터넷에 검색해본 결과 \
를 사용하면 된다는 것을 알 수 있었다.만약 id 값이 ’
것을 찾고 싶어서 쿼리문을 SELECT id FROM test WHERE id = '''
로 작성하면 에러가 난다.
그 이유는 '
를 문자로 인식하지 않기 때문이다.
이러한 문제 때문에 특수문자 예외처리를 해줘야하는데, 이것이 \
이다.SELECT id FROM test WHERE id = '\''
로 처리하게 되면 id가 '
인 것을 찾는 쿼리문으로 된다.
이것을 이용하면, SELECT id FROM prob_succubus WHERE id='\' and pw='#'
으로 처리하면 WHERE 절의 id 값은 ' and pw=
로 인식이 된다.
저 상태에 pw 파라미터에 값을 넣으면 ''
묶음에서 자유로워지는 것이다.
이와 같이 간단하게 풀이하였다.
'워게임 > Lord of SQLInjection' 카테고리의 다른 글
[Lord of SQLInjection] Nightmare Write UP (0) | 2021.08.07 |
---|---|
[Lord of SQLInjection] Zombie Assassin Write UP (0) | 2021.08.07 |
[Lord of SQLInjection] Assassin Write UP (0) | 2021.07.24 |
[Lord of SQLInjection] Giant Write UP (0) | 2021.07.24 |
[Lord of SQLInjection] Bugbear Write UP (0) | 2021.07.20 |