저번 SQL Injection에 이어서 이번에는 Blind SQL Injection에 대해서 공부해 보았다.
DVWA의 Blind SQL Injection에 들어간다.
1을 넣었을때는 ID가 존재한다고 나오고
SQL Injection검사하는것처럼 '를 넣었을때는 ID가 데이터베이스에 없다고 나온다.
이때 위의 방식 처럼 항상 FALSE인 경우를 넣어 입력된 쿼리문이 ID가 존재한다, 존재하지 않는다 처럼 두가지 결과로 만 나올때 Blind SQL Injection을 사용하는 것 같다.
코드를 보면 보다시피 두개의 결과만 출력 하고 있다.
1' AND SLEEP(5)#
다음 구문은 앞에가 성립할때 5초의 딜레이를 준다는 구문이다
의문) 여기서 이 문법이 이해가 안간다. AND라는것은 두개가 다 TRUE 일때 TRUE가 성립 이런식으로 사용하는데
왜 이런 케이스가 성립할까?
그래서 책에서는 이와 같은 방식으로 자동화 공격 프로그램을 만들어서 정보의 참 거짓에 대한 판단을 브루트 포스 공격 할 수 있다고 설명하는것 같다.
자동화 공격 설명을 하며 sqlmap 프로그램을 소개한다.
다시 저번에 봤던 SQL Injection 페이지로 돌아가
sqlmap에 주소와 쿠키를 입력하고 나니
sqlmap 설정에 따라 데이터베이스 이름
데이터베이스 테이블
그리고 안에 있는 정보까지 출력 할 수 있었다.
저번에 얻은 결과와 같았다.
그래서 이를 보완하는 코딩으로는 위의 코드와 같이 유저가 입력하는 ', 1' AND 1=1# 등을 제한하는 방식으로 방어 할 수 있었다.
'정보보안 > 화이트 해커를 위한 웹해킹의 기술' 카테고리의 다른 글
Cross-site scripting (0) | 2022.02.02 |
---|---|
Command Injection (0) | 2022.01.29 |
SQL Injection (0) | 2022.01.25 |
취약한 인증 공격 (0) | 2022.01.25 |
정보 수집 (0) | 2022.01.22 |