time base sql injection 공격은 blind sql injection 공격과 거의 같다.
blind SQL injection
blind SQL 인젝션은 예 아니요로만 심문을 하는 것이라고 비유할 수 있다. 오직 '예' '아니요' 로만을 통해서 계속 추측을 해 나가야 한다. bWAPP오로 실습을 진행 하며 SQL injection - Blind-Boolean-Based으로
adm1n1.tistory.com
똑같이 대답이 예 또는 아니요만을 가지고 계속 추측해 나가야 하지만
이번에는 대답이 서버의 로딩시간으로 판단하는 것이다. 시간이 걸리는 공격이다 보니 보통 바로 시도하지는 않고
에러베이스 sql injection → 블라인드 인젝션 까지 했는데 없거나 막히면 sleep 인젝션을 시도한다
실습을 보면 금방 이해할 수 있다.
물론 웹서버 자체가 멈추는건 아니고 데이터베이스가 요청값에 대해서 대기하는것이다
환경설정
실습
실습을 해보면 로딩이 되는것을 보아 참이긴 한데 sleep(5)로 5초뒤에 정상 작동이 되어야하는데
브라우져에 탭 부분을 보면 5초가 지났는데도 로딩중이다.
이 이유는 한 컬럼당 5초이기 때문이다
이전에 다른 종류의 sql injection 실습을 통해 컬럼이 7개인것을 알았다
그렇다면 7x5 + 그외에 경우(네트워크,서버 처리 등등) 즉 35초 +@ 라는것이다.
대략 40초 뒤 정상적으로 로딩이 완료가 됐다
즉 응답값이 늦어지면 참 정상작동이면 거짓
이외에 실습들은 이전 sql injection 게시글에서 참고
주의사항
주의사항으로 서비스가 동시접속을 하는 실무 서비스라면 계속 서버에 요청 및 응답을 지속적으로 해야 하는데
대기를 시키는 해당 함수는 서버에 성능을 늦출수 있기 때문에 장애가 발생할수 있기 떄문에 주의를 해야한다
특히나 자동 진단툴(예를 들어 sqlmap) 으로 진단을 하면 서버에 장애가 생길 확율이 매우 있음!!!
실무에서 sleep sql injection 은근히 빼먹는 경우가 있기 때문에 주의!!!
'보안 > 기초' 카테고리의 다른 글
xss cheatsheet (0) | 2024.10.30 |
---|---|
burpsuite을 이용해 파일업로드취약점 확장자 명 우회 취약점 / burpsuite 문제점 (1) | 2024.01.27 |
blind SQL injection (1) | 2024.01.14 |
Error based SQL injection (0) | 2024.01.13 |
TCP vs UDP (0) | 2023.11.14 |