SQL注入之-盲注

前言

Tips: 后续根据本人认知体系不断壮大会持续更新 QAQ

首先了解几个需要的函数:
1. A = SBUSTR(str,pos);
2. B = LENGTH()
3. C = IF(expr1,expr2,expr3)
4. D = SLEEP(time)

A 作用: 就是从pos开始的位置,一直截取到最后。
B 作用: 用于获取对应字段的字符长度。
C 作用: 用于匹配结果导向的真(True)与假(False)。
D 作用: 延时作用添加数字以秒为单位。

盲注原理与分类

在这里插入图片描述

盲注流程

  1. 判断是否存在注入点
  2. 猜解当前数据库名称,注:需要先猜解名称的长度
  3. 猜解数据库中的表名,注:需要先猜解名称的长度
  4. 猜解表中的字段名, 注:需要先猜解字段的数量
  5. 猜解数据, 注:需要先猜解数据的记录数,再对每个字段的长度和数据迚行猜解
  1. 从流程中丌难看出盲注的核心意义在于“猜”,那猜解一个范围中的数值最有效的方式是什么?
  2. 二分法:我们先取值一个范围 1-100,当我们知道正确的答案就在 1-100 其中一个时我们选择 2 分法中行快速找到目标数值,我们第一次取值 50 判断目标大于 50 还是小于 50,大于 50 则再从 50-100中取中间值迚行判断,以此类推。

基于布尔的盲注

在这里插入图片描述

我们通过构造一个判断条件( length(database()) = 8)判断目标是否满足条件,满足条件则执行成功,不满足则执行失败。database()是当前数据库名称length(database())取出数据库名称的长度< = > 分别为大于、等于、小于,用来判断是否满足条件。用来猜解。

在这里插入图片描述
在这里插入图片描述

取值范围思路: 先使用<>大于号小于号确定范围,然后一直缩小范围,当范围缩小到个位数就可以用=号来判断具体数值。

在这里插入图片描述

扫描二维码关注公众号,回复: 9174425 查看本文章

基于时间的盲注

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

SQL 注入读写文件


在这里插入图片描述

SQL 注入写入文件

into outfile 语句用于把表数据导出到一个文本文件中
用法:select * from Table into outfile ‘/路径/文件名’
例:
MariaDB [security]> select * from users into outfile “/var/lib/mysql/test.txt”;
Query OK, 13 rows affected (0.00 sec)
打开另一个终端查看导入的文件:
[root@centos ~]# cat /var/lib/mysql/test.txt
在这里插入图片描述
可以看到把以上查询 users 表中的内容保存到文件中,由此我们可以利用此方法通过 sql 注入向系统中写入文件访问 Less-7 页面:http://192.168.1.63/sqli-labs/Less-7/http://192.168.1.63/sqli-labs/Less-7/?id=-1’)) union select 1,2,‘test’ into outfile"/var/lib/mysql/test.php"–+
在这里插入图片描述
在这里插入图片描述

基于报错的 SQL 注入

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结

1. SQL 注入-盲注
2. SQL 注入读写文件
3. 基于报错的 SQL 注入

发布了39 篇原创文章 · 获赞 13 · 访问量 3345

猜你喜欢

转载自blog.csdn.net/qq_30036471/article/details/103222323
今日推荐