id와 password를 입력하는 폼이 주어진다.
id list 링크 버튼이 존재하고, 누르면 admin
계정이 존재하는 것을 확인할 수 있다.
노멀한 injection을 시도해보면 로그인에 실패한다.
힌트를 보면 GBK라고 나와있는데 위키를 보면
GBK (character encoding)
GBK is an extension of the GB2312 character set for simplified Chinese characters.
...
...
A character is encoded as 1 or 2 bytes.
중국어를 표현하는 멀티바이트 인코딩 방식이다.
따라서 멀티바이트 취약점을 이용하여 sql 인젝션을 시도하면 되겠다.
프록시 상에서 기존과 동일하게 싱글쿼터 앞에 %b0을 삽입해준다.
admin%b0' or 1=1 --
반드시 프록시 상에서 페이로드를 입력해주어야 한다.
폼에서 입력할 경우 request로 생성될 때 url encoding을 하게되는데
그렇게 되면 %b0
이 2번 인코딩 되서 서버에서 멀티바이트로 병합이 되질 않는다.