SQL注入之盲注怎么实现

59次阅读
没有评论

共计 1367 个字符,预计需要花费 4 分钟才能阅读完成。

这篇文章主要介绍“SQL 注入之盲注怎么实现”的相关知识,丸趣 TV 小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SQL 注入之盲注怎么实现”文章能帮助大家解决问题。

sql 注入——盲注 1. 回顾

回显注入主要应用于数据库中的数据可以再网站的页面上直接展示出来。
报错注入主要应用于网站的页面上存在原始报错信息,数据库中的数据在原始报错信息中展示出 来。也被称为报错回显。
原理:由于用户不可控输入,攻击者可以任意的输入恶意的 sql 语句,造成 sql 语义发生改变,从而引起数据库和操作系统的风险。

风险:数据操作、登录绕过、文件操作、命令执行、注册表操作。

防御:过滤、预编译。

2. 盲注漏洞场景

1. 数据库中的数据并不会在页面上直接展示,将查询出的结果通过判断,将判断之后的结果在页 面上输出。如登录框
2.insert、update、delete 等于语法不具备数据的查询功能,页面上就不会存在数据库中的数据。如注册、信息修改、数据添加

3. 盲注原理

核心
将数据库中查询的数据结果进行截断为单个字符,然后同构造逻辑语句。通过判断页面显示是 否异常或页面是否演示来判断数据库中查询的结果。

4. 分类

1.bool 盲注
如果数据库中可以查到相应的数据,页面会正常显示,反之异常。

2. 时间盲注
无论输入任何数据,页面的效果完全一样,根据页面是否延迟判断出数据库中查询出的结果。

5. 流程

1. 找疑似注入点 找输入点,找与数据库有交互的地方
2. 判断 sql 注入是否存在 构造恶意的 sql 语句,提交后页面的响应信息与预期保持一致,这说明注入存在。
3. 获取数据库名

1. 获取当前数据库名
 and ascii(substr((select database()),1,1))=115
2. 获取所有数据库名
 and (select ascii(substr(group_concat(schema_name),1,1)) from information_schema.schemata) 0

3. 计算出获取数据的长度

and (select length(group_concat(schema_name)) from information_schema.schemata) 10 --+

4. 获取表
5. 获取列
6. 获取数据

6. 时间盲注

and if(((select database())= a ),sleep(5),0)--+

7. 总结

可以发生回显、报错、bool 注入的地方都可以发生时间盲注,反之不行 可以发生回显报错的地方一定可以 bool 型盲注,反之不行。

8.sqlmap

sql 注入自动化工具,python2 开发的,可以兼容 python3。sqlmap 的使用实际上就是模拟人对网站的请求过程,可以对获取的数据做收集分析然后展示。

python sqlmap.py -h 查看 sqlmap 可使用的参数
 -u  网站的 url 向 sqlmnap 提供注入点 

–dbs 获取所有数据库名

-D 指定库 –tables 获取指定数据库中所有的表的信息

-D 指定库 -T 指定表 –columns

-D 指定库 -T 指定表 -C 列 1,列 2 –dump

-r‘文件名’

关于“SQL 注入之盲注怎么实现”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注丸趣 TV 行业资讯频道,丸趣 TV 小编每天都会为大家更新不同的知识点。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-13发表,共计1367字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)