sql注入除mysql之外_SQL注入的练习

测试SQL注入的字符类型:

若输入1时的结果:

0cfe8916de809157fe1ecd3528cf0cf0.png

输入1' and '1'=1时,结果:

93e3b9748179e1146cbc1c4845e9f629.png

输入1' and '1'='2时,结果:

b0085a709a4f10cfce4e1ed61aa6d7b9.png

则为字符型,可对其进行SQL注入

确定字符型后,可以对Mysql数据库中的某些数据进行查询,甚至在权限较高时可以修改数据库的内容,以下为读取数据库名称的注入(1' union select 1,database() #)

68ad82ec83bff5a9f49fef47e94e660b.png

可以看到在返回值中,数据库的名称为“DVWA”,可以根据需要采用不同的SQL语句查询

甚至可以下载数据库中的内容:

87729778a93023ef082e5871ca198916.png

对于不能直接在表单输入内容,以及能对特殊字符进行过滤的表单,可以使用burpsuite等抓包工具抓包,对抓包后请求信息修改后放行即可绕过

4c4e8bf261004f0c0866f68ce532fa3c.png

c1b85b96b52233a7b467ac3b7faa55ec.png

修改后显示的结果:

1656d6ab5e78fc9a9835c2da1bfd3c3f.png

还要注意对单引号(')进行转义,如果依旧不能进行可以通过结尾添加#注释掉后面的语句进行尝试

但如果表单的返回信息只有是否两种类型时,就不能依靠盲注的方式了,盲注最简单的方式就是通过猜,比如数据库的长度,之后依靠二分法测试每个字符;

除此之外还可以通过工具的帮助进行盲注,比如使用sqlmap:

输入(python sqlmap.py -u "http://localhost:8066/DVWA-master/vulnerabilities/sqli_blind/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=ee0v1po7g8sduohu10ptjp3fu2" --dbs --batch)

显示:

8001ef4bc8d902a04f37ad8319474933.png

显示了一些版本信息等,还有下图中的包含数据库名称

d227bd95df5dae4588083508e5278309.png

当然这只是一些简单的,复杂的注入,可能需要专用的脚本等,这就需要我近一步的学习了。

还有,听了前辈的一句话感觉很有道理,任何漏洞都要切实修复,不要因为有其他防护软件的保护就松懈,系统是一个相关性极高的东西,一个单独微小的漏洞可能和其他漏洞共同造成极大的隐患,只有将及时将发现的漏洞修复才能使系统最安全。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值