write-ups/Lord of SQL Injection

[los] DB가 바뀌고 나서의 xavis write up

2016. 12. 26. 17:08

Lord of SQL Injection xavis write up



이 문제는 1개월동안 잡고 있었던 문제 같습니다ㅜㅜ 

진짜 어떻게 풀어야 하는 지도 계속 몰랐던 문제라 웹해커 친구에게 힌트를 물어봤습니다. 그 친구는 힌트가 한글이라고 했고, 한글로 blind sql injection 하는 구나 이렇게 생각하면서 풀려고 노력했었는데 아니더군요! 


그냥 힌트만 얻으려 들어오신 분들에게 조금의 힌트를 드리자면,

pw에 있는 내용은 한글이 아닙니다ㅡㅡ

한글은 아니지만 일반 ascii 코드도 아닙니다!



위의 코드는 제가 문제를 푸는 데 사용했던 파이썬 코드입니다. 

제 우분투에서는 유니코드가 잘 나오지 않았기 때문에 mysql에서 select 하면 볼 수 있는 형식의 16진수 스트링을 프린트하도록 하였습니다.


참고로, 파이썬으로 테스트 해보니 글자는 10글자 (한 글자 당 4byte)였고, 모두 ascii 값이 160이 넘어서 for문을 1부터 시작하지 않고 160부터 시작했다.  


그래서 나온 결과는



요롷게 인코딩이 안돼 글자가 깨져서 보입니다. 하지만 답은 있습니다!


sqlzoo.net

여기서 쿼리를 테스트 할 수 있는데 

select 0xb8f9c5b0c6d0c4a1a4bb;

이렇게 입력했더니 이상한 글자들이 보입니다. 이것을 복사해서 pw값에 넣으면 클리어!