일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 잠실새내 도그존
- 고르드
- 홍대 카페 장쌤
- 토라비
- typescript
- 금별맥주
- graphql with RN
- 잠실새내
- apolloclient
- 비동기배열
- 예쁜술집 예술
- promise메서드
- 비동기배열처리방법
- 화이트해커를 위한 웹 해킹의 기술
- 홍대 예술
- useMutation error
- apollo react native
- 운정 소바동
- graphql
- promise처리
- graphql mutation error
- 앙버터마카롱
- 홍대 토라비
- graphql react native
- 지보싶 신촌점
- 도그존
- graphql with reactnative
- 신촌 소문난집
- graphql 400
- 화이트 해커를 위한 웹 해킹의 기술
- Today
- Total
yehey's 공부 노트 \n ο(=•ω<=)ρ⌒☆
SQL injection 실습3 (Blind) 본문
실습환경 DVWA-SQL injection (Blind), kali 리눅스
Blind SQL injection 실습
이번에는 SQL syntax error가 출력되는 것이 아니라 사용자가 존재하는지 여부만 알려주고 있다.
'를 입력해도 별 다른 에러가 발생하지 않아서 이 폼이 SQL 쿼리문을 사용하는지 사용하지 않는지도 알 수 없다.
그래서 우선 SQL 쿼리문을 사용하는지 사용하지 않는지를 먼저 알아보자
항상 참인 쿼리문 입력하기
1' AND 1=1#
이렇게 입력하면 User ID가 1인 사용자뿐만 아니라 1=1이라는 항상 참이 되는 조건이 추가되었기 때문에
id='1'인 사용자도 존재하고 1=1도 참이기 때문에
만약 폼이 SQL 쿼리문을 사용한다면 사용자가 존재한다는 결과가 나올 것이고
SQL 쿼리문을 사용하지 않는다면 1' AND 1=1#을 하나의 문자열로 처리해서 사용자가 존재하지 않는다가 나올 것이다.
사용자가 존재한다는 결과가 나왔으므로 입력 폼이 SQL 쿼리문을 사용한다는 것을 알 수 있다.
Blind SQL injection 공격과 SQL injection 공격의 차이
일반적인 SQL injection 공격은 결과를 직접적으로 알아낼 수 있지만 (특정 테이블 결과 출력과 같이)
Blind SQL injection 공격은 명제를 제시하고 참인지 거짓인지(특별한 응답의 발생 여부)를 통해 원하는 정보를 얻어낸다.
그 과정에서 시간은 오래 걸리지만 정보는 얻어낼 수 있다.
(ex. 패스워드를 찾을 때, 패스워드의 첫 번째 값이 a인가? 와 같은 명제를 반복해서 패스워드를 구할 수 있다.)
그럼 이제 blind SQL injection 공격을 Time based를 이용해 실행해보자!
Time based?
시간 지연을 통해 참/거짓을 판단, 시간 지연이 특별한 응답
공격을 원하는 페이지에서 F12를 눌러 Network을 열어주고 입력 폼에 다음 문장을 넣어 실행시켜본다.
1' AND SLEEP(5)#
다음과 같이 응답이 5006ms 정도 걸린 것을 볼 수 있다.
이번에는 존재하지 않는 값을 넣어보자
6' AND SLEEP(5)#
이번에는 응답에 15ms 정도 걸렸다.
따라서 조건이 참인지 거짓인지 시간 지연을 통해 알 수 있다.
Blind SQL injection 공격을 통해 원하는 정보를 얻을 수는 있지만 앞서 말한 것 처럼 시간 소요가 크다.
그래서 Blind SQL injection 공격은 자동화 프로그램을 많이 이용한다. (일반 SQL injection 공격도 자동화 프로그램 사용 가능)
칼리에서는 "sqlmap"이 설치되어 있다.
'웹 > 웹 해킹' 카테고리의 다른 글
Reflected XSS 공격 실습 (0) | 2020.10.04 |
---|---|
Command injection 공격 실습 (0) | 2020.10.01 |
SQL injection 실습2 (ORDER BY & UNION) (0) | 2020.09.30 |
SQL injection 실습1 (WHERE 구문 우회) (0) | 2020.09.29 |
Brute Force Attack + DVWA실습 (0) | 2020.09.27 |