본문 바로가기
3. 웹 애플리케이션 취약점 진단/Lord of Sql Injection

lord of sql injection 19번 - xavis

by Robert8478 2023. 12. 22.

이번에도 블라인드 sqli 문제다. 그런데 이번엔 필터링 자체가 별로 없는데 우선 매일 쓰던 쿼리를 넣어보았다.

잘 된다.. 그래서 length를 찾아보았다.

12자인것으로 확인.. 그래서 ascii와 substr 함수로 찾아보려고 한다.

그런데 이상하다.. 첫번째 글자가 아스키코드 0의 값을 가리킨다. 이것은 null값을 의미하는데 뭔가 문제가 있는것 같다.
이런 경우는 pw가 영문자나 숫자가 아닐 가능성이 높기 때문에 ascii 대신 ord 함수로 대체해서 써보았다.

그랬더니 값이 50000 이상을 훌쩍 넘긴다.. 특수문자도 아니고 영문자도 아니고 숫자도 아니라면 뭘까..?
답은 하나밖에 없다. 한글이거나 다른 언어이거나.. 그래서 이 문제는 한글같은 문자와 호환하는 유니코드 범위의 숫자로 변경해서 검색해야 할듯 싶다.
이건 수동으로 찾는것은 답이 없으니 코드를 짜서 찾아야한다. AC00 - D7AF 사이 유니코드 값을 가진 이진 탐색 알고리즘을 적용한 코드를 실행하여 비밀번호를 찾아내었다.

코드를 돌려보니 세글자의 유효한 코드가 나왔고. 이를 본 문자로 컨버팅해본 결과 '우왕굳' 이라는 비밀번호가 나왔다.
이를 입력하면 클리어