time based sql injection

2025. 7. 3. 17:08·Hacking
time based sql injection

 

공격의 결과가 화면에 출력되지 않고 서버의 반응이 일관적이어서 공격의 성공,실패여부가 구분이 불가능한 상황에세 해야하는 공격 기법

응답 시간을 일부러 지연시켜서 공격이 성공인지 실패인지 판단

 

시간과 관련된  함수 사용-> 응답 지연-> sleep

실제로 3초 뒤에 응답이 온다

and 연산자 

참 and 참 -> 참
참 and 거짓 -> 거짓
거짓 and 거짓 -> 거짓
:하나만 거짓이어도 거짓이 되며 둘 다 참이어야 한다. 앞이 거짓이면 뒤는 의미가 없다. 어차피 거짓이니까
and 연산자 앞이 거짓이면 short cut 동작(뒤에 있는 조건을 완전히 무시한다)이 된다. 


-> 즉 sleep함수가 실행됐다면 앞의 함수가 참이라는 뜻이다. 

 

앞의 조건을 공격코드로 입력하고 and로 묶어서 뒤에 sleep()를 입력한다.

그 결과 응답시간이 지연되면 sleep()이 실행되어 공격코드가 참이라는 의미.

 

 

 

select asciii(substr(database(),1,1)) >= 97 and sleep(3);

항상 똑같은 응답을 하지만 지연시간을 통해 참,거짓을 확인할 수 있다.

' or ascii(substr(database(),1,1)) >= 97 and sleep(3) #

 

 

ascii -> 0 -> NULL (빈값이다. 스페이스가 아님. 중간에 null값이 나올 수는 없다)

 

 

 

sleep 함수의 주의할 점!

결과값이 몇개냐에 따라 지연되는 시간도 오래 걸린다.

no가 1인 것과 2인 것과 3인 것이 있으므로 9초가 걸리게 된다.

 

즉 결과값이 항상 1개만 나오게 설정해야지 여러개 나오게 설정을 해놓으면 한없이 기다려야 하는 수가 있다.

 

bloolean sql injection에 + slepp()함수만 합치면 된다.


궁금증

한글은 어떻게 알아낼까?

 

ORD함수를 사용한다.

이 함수는 영어도 지원하기 때문에 ascii대신 이걸 사용해도 상관은 없다.

연산이 동일해서 속도도 같다. 다만 단점은 사람이 수작업으로 하기에는 숫자가 너무 크기 때문에 현실적으로 불가능하다. 반드시 자동화 툴을 사용해야 한다.

수천에서 수만번 써야 한다.

 

substr = substring

은 동일하다. 시스템의 차이가 있다.

 

아니면 HEX도 사용가능!

' OR HEX(SUBSTRING(
  (SELECT column_name FROM information_schema.columns
   WHERE table_name='board' LIMIT 0,1), 1, 1)) = 'ECA09C' --
이게 참이면, 첫 글자가 제라는 걸 알 수 있음

 

 

저작자표시 비영리 변경금지 (새창열림)

'Hacking' 카테고리의 다른 글

google dork 연산자 및 옵션  (0) 2025.07.09
sql injection 보안 , Directory listing 취약점 및 보안  (1) 2025.07.07
boolean sql injection (노가다)  (0) 2025.07.03
SQL injection 실습(query result sql injection)  (0) 2025.07.02
SQL injection 이론, query result sql injection (board_view GET방식 파라미터 값을 select- injection vector)  (0) 2025.07.02
'Hacking' 카테고리의 다른 글
  • google dork 연산자 및 옵션
  • sql injection 보안 , Directory listing 취약점 및 보안
  • boolean sql injection (노가다)
  • SQL injection 실습(query result sql injection)
햅삐root
햅삐root
happyroot 님의 블로그 입니다. IT 보안 정리💛
  • 햅삐root
    햅삐한 root
    햅삐root
  • 전체
    오늘
    어제
    • 전체보기 IT (123)
      • Linux (21)
      • Network (23)
      • packet tracer& GNS3 (10)
      • Cryptology (7)
      • WEB (16)
      • DB (16)
      • Hacking (28)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Hack
    sqlinjection
    injectionvector
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
햅삐root
time based sql injection
상단으로

티스토리툴바