🏆今日学习目标: 🍀学习sql注入之盲注操作 ✅创作者:贤鱼 ⏰预计时间:25分钟 🎉个人主页:贤鱼的个人主页 🔥专栏系列:网络安全
- 布尔盲注
- 原理
- 布尔盲注payload构造步骤
- 截取字符串
- substr()
- mid
- rigth()
- left()
- regexp
- rlike
- trim
- insert
- 字符串定位函数
- 比较
- =
- rlike/regexp
- between
- in
- and,or减法运算
- 脚本
- 时间盲注
- 原理
- 时间盲注payload步骤
- 条件语句构造
- and
- or
- 延时操作
- sleep
- benchmark
- 笛卡尔积延时
- 正则dos延时
- 脚本
- 报错盲注
- 原理
存在sql注入漏洞的地方,但是不会会先数据,只能看到是否执行成功,这样子就不能通过注入数据回显了,就需要盲注,盲注对一个数据多次测试
举个例子
如果"库名"第一个字母是a,就回显“查询成功”,反之“查询失败”;
如果"库名"第一个字母是b,就回显“查询成功”,反之“查询失败”;
如果"库名"第一个字母是c,就回显“查询成功”,反之“查询失败”;
如果"库名"第一个字母是d,就回显“查询成功”,反之“查询失败”;
......
如果"库名"第一个字母是z,就回显“查询成功”,反之“查询失败”;
......
名字可能由任何字符组成,我们如果匹配上了,就把他记录下来,一位一位的比较,就可以获得我们要的数据了 当然,如果手动比较,电脑和我的手一定会炸掉一个 所以我们需要写脚本,在后文会介绍到。
布尔盲注payload构造步骤确定注入点,找到回显不同,例如:内容不同或者http头部不同
我们该如何构造语句呢? 举个栗子
SELECT name, mojority FROM student WHERE student_id = '0' or substr((QUERY),1,1) = 'a'
SELECT name, mojority FROM student WHERE student_id = ‘0’ or substr((QUERY),1,1) = ‘a’ 这个部分就是我们需要构造的部分
构造语句的两个重点: 字符串如何截取 比较结果是否相等
所以盲注就相当于把注入内容一位一位拆开然后比较内容,最后比较出啥输出啥,然后将比较到的每一位字符都输出就是我们的答案了
截取字符串 substr()使用方法: substr(要截取的字符串,从哪一位开始,截取多长)
例如
select substr((select database()),1,1);
mid
用法和substr完全相同!!可以互相绕过过滤
rigth()使用方法 right(要截取的字符串,截取长度) 表示截取字符串右边几位 注意: 配合ascii/ord一起使用,这两个函数是返回传入字符串的首字母的ASCII码 使用方法: ascii((right(要截取的字符串,x))) 返回的内容是从右往左x位的ascii码
举个栗子
select ascii(right((select database()), 2));
left()
使用方法: left(要截取的字符串,截取长度) 表示截取字符串左边第几位 注意: 配合reverse()+ascii/ord使用,用法和上面类似
举个栗子:
elect ascii(reverse(left((select database()), 2));
regexp
使用方法: binary 目标字符串 regexp 正则 判断一个字符串是否匹配一个正则表达式
举个栗子:
select (select database()) regexp binary '^sec'
rlike
用法和regexp雷同
trimtrim(leading ‘a’ from ‘abcd’) 表示移除句首a,会返回abc,如果将from前的a改成b,则会返回abcd
insert用法 insert(字符串,起始位置,长度,替换成什么)
字符串定位函数INSTR(str,substr)–> 返回字符串 str 中子字符串的第一个出现位置,否则为0
FIND_IN_SET(str,strlist)–> 返回字符串 str 中子字符串的第一个出现位置,否则为0
LOCATE(substr,str,pos)–> 返回字符串 str中子字符串substr的第一个出现位置, 起始位置
在pos。如若substr 不在str中,则返回值为0
POSITION(substr IN str)–> 返回子串 substr 在字符串 str 中第一次出现的位置。如果子串
substr 在 str 中不存在,返回值为 0
用法: locate(substr, str, pos) 字符串 str中子字符串substr的第一个出现位置, 起始位置在 pos。如若substr 不在str中,则返回值为0。
比较 =我觉得不需要讲。。。
rlike/regexp上文有讲,截取+比较结合体
between用法 expr between 下界 and 上界 意思是是否expr>=下界 &&expr
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?