QnA 게시판에서 Insert Query가 사용되는 부분에서 발생할 수 있는 Time based SQL injection 에 대한 문제이다.
쿼리의 결과의 차이를 볼 수 없는 것 같다.
정성스레 만들어진 페이지를 볼 수 있었다.
페이지를 둘러보니 입력된 자바스크립트가 바로 실행되는 그런 JS TEST 서비스를 제공하는 사이트 같다.
여기서 SQLi 가 발생할 수 있는 곳은 to JSMaster라는 메뉴 밖에 없는거 같다.
해당 메뉴는 홈페이지 관리자에게 메모를 남기는 서비스이다.
sleep() 함수를 이용하여 test를 해보니 응답 값의 시간 차가 발생했다.
위와 같이 조건문을 이용하여 Blind SQL Injection을 시도해보자.
-TABLE (SAMPLE CODE)
테이블을 구하기 위해 작성해본 샘플코드이다.
테이블과 컬럼값 확인 결과 둘 다 authkey라는 것을 확인했다.
-FLAG
이렇게 하여 FLAG 값 획득이 가능했다.
**POINT : INSERT 문에 삽입할 수 있는 BLIND SQL Injection의 형태에 대해 알고 있는가?
++Error SQL Injection 으로도 문제풀이가 가능하다.