상세 컨텐츠

본문 제목

[wargame.kr] LEVEL25_QnA

카테고리 없음

by about_SC 2019. 7. 23. 13:26

본문

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 으로도 문제풀이가 가능하다.