본문 바로가기

워게임/LOS

[워게임 LOS] 문제 19번, 자비스(Xavis)



Lord Of SQL injection, 문제 19번 자비스입니다.

힌트는 비밀번호가 한글이라는 점인데요.


예전에 풀었던 일반적인 모습에서 비밀번호는 한글을 사용해 풀어야합니다.


먼저 LENGTH(`pw`) 를 사용해서 비밀번호 길이를 추측합니다.

?pw=1' or id='admin' %26%26 LENGTH(`pw`)='12


이렇게 하면 참이 되는데요.

그렇다면 비밀번호 길이가 12일까요?

아닙니다. 저도 착각을 했었는데 한글 1문자당 4바이트를 차지합니다.

결과적으로 비밀번호는 총 3자리가 됩니다.


이제 비밀번호를 substr 를 사용해서 찾아보겠습니다.

?pw=1' or id='admin' %26%26 SUBSTR(`pw`,1,1)='가


이런식으로 풀어나갈 것입니다.

저는 여기 사이트를 참고해서 한글 리스트를 만들고 일일이 대입했습니다..

그래서 답을 찾는데 10~20분 걸리는 최적화가 안된 스크립트입니다.


hangul_list.py


prob19 xavis.py