SQL注入之盲注

盲注的概念:

1.何为盲注:盲注就是在SQL注入过程中,找到注入点后,执行SQL语句后,选择的数据或者错误信息不能回显到前端页面。
需要利用一些方法进行判断或则猜测,这个过程称之为盲注。

 2.盲注的分类:
1)基于报错显示的盲注
2)基于布尔判断的盲注
3)基于时间延迟的盲注

盲注常用的SQL函数:

1.substr(string,start,length)
功能:截取字符串功能
返回值:为截取后的字符串
参数:string为操作字符串,start为开始位置,length为截取长度。
举例1:
$ret = substr("hello kali",2,4);
ret = "ello";
举例2:
substr(database(),1,1)>'a' //判断数据库名第一位是否大于a;再查看其他位进行判断。

2.mid(column_name,start,length)
功能:截取字符串功能(和substr功能和参数一样)
返回值:为截取后的字符串
参数:column_name为操作字符串,start为开始位置,length为截取长度。
举例1:
$ret = mid("hello kali",2,4);
ret = "ello";
举例2:
mid(database(),1,1)>'a' //判断数据库名第一位是否大于a;再查看其他位进行判断。

3.left(string,n)
功能:返回字符串string最左边的n个字符串
返回值:string最左边的n个字符串。
参数:string为操作字符串,n为开始位置,length为截取长度。
举例1:
$ret = left("redhat",3);
ret = "red"
举例2:
left(database(),2)='sa' //判断数据库名前2个字符是否为sa;再查看其他位进行判断。

4.right(string,n)
功能:返回字符串string最右边的n个字符串。
返回值:string最右边的n个字符串。
参数:string为操作字符串,n为开始位置,length为截取长度。
举例1:
$ret = right("redhat",3);
ret = "hat";
举例2:
right(database(),1)>'a' //判断数据库名最后一个字符是否大于a;再查看其他位进行判断。

5.ord(char)
功能:char为字符,用于返回字符的ascii码,有时候服务器会对单引号进行转义,使用ASCII码就不用使用单引号参数。
参数:char为操作
返回值:返回字符char的ascii码
举例1:
$ret = char('a')
ret = 97;
举例2:
ord(mid(database(),1,1))>114 //意为检测database()的第一位ASCII码是否大于114,也就是'r'。

6.length(string)
功能:截取字符串的长度
参数:string为操作字符串
返回值:返回字符串string的长度
举例1:
$ret = length("hello");
ret = 5;
举例2:
length(database())>5 //判断数据库名长度大于5

7.cast(expression as type)
功能:将任何类型的值转换为具有指定类型的值
参数:sxpression为操作字符串,type为转化类型
返回值:返回的是转化后的值
举例1:
$ret = cast('12' as int);
ret = 12;
cast函数通常和mid和ord函数一起配合使用

8.ifnull(str1,str2)
功能:根据第一个参数是否为null返回具体的值,ifnull里有两个数,如果第一个不是null,返回str1,如果str1=null,返回str2
参数:str1和str2为操作字符串
返回值:根据第一个参数是否为null返回具体的值
举例1:
$ret1 = ifnull("hello","nihao");
$ret2 = ifnull("null","nihao");
ret1 = "hello";
ret2 = "nihao";

9.ascii(str)
功能:str为字符或者字符串,用于返回字符或字符串最左边的ascii码,有时候服务器会对单引号进行转义,使用ASCII码就不用使用单引号参数;(功能和ord一样)
参数:char为操作
返回值:返回字符char的ascii码
举例1:
$ret = ascii('a');
ret = 97;
举例2:
ascii(mid(database(),1,1))>114 //意为检测database()的第一位ASCII码是否大于114,也就是 'r'

什么是ascii码?

在计算机中,所有的数据在存储和运算时都要使用二进制数表示(因为计算机用高电平和低平分别表示1和0),例如,像a、b、c、d这样的52个字母(包括大写)以及0、1等数字还有一些常用的符号(例如*、#、@等)在计算机中存储时也要使用二进制数来表示,而具体用哪些二进制数字表示哪个符号,每个人都可以约定自己的一套(这就叫编码),而大家如果要像互相通信而不造成混乱,那么大家就必须使用相同的编码规则; ASCII码使用指定的7位或8位二进制数组合来表示128或256种可能的字符,标准ASCII码也叫急促ASCII码,使用7位二进制数(剩下的1位二进制位0)来表示所有的大写和小写字母,数字0到9,标点符号,以及在美式英语中使用的特殊控制字符。

简单的介绍一下ASCII码,具体详解,可以查找相关的文章或视频。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
回答: SQL注入盲注可以分为三类:布尔盲注、延时盲注和报错盲注。其中,布尔盲注是一种通过构造逻辑表达式的SQL语句来判断数据的具体内容的盲注方式。在布尔盲注中,页面在执行SQL语句后,只显示两种结果,通过构造逻辑表达式的SQL语句来判断数据的具体内容。\[1\]布尔盲注是一种基于布尔的SQL盲注,通过构造逻辑表达式的SQL语句来判断数据的具体内容。\[2\]当我们只能通过页面返回的结果的“是”与“否”来得到我们想要的信息时,就被称为布尔型盲注。\[3\]所以,如果你在进行SQL注入时,只能通过页面返回的结果的“是”与“否”来得到你想要的信息,那么你遇到的就是布尔型盲注。 #### 引用[.reference_title] - *1* [SQL注入盲注简单总结](https://blog.csdn.net/qq_42477007/article/details/96492174)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [SQL注入盲注](https://blog.csdn.net/xiao_he0123/article/details/123610491)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [SQL注入2——盲注(重学)](https://blog.csdn.net/qq_52263650/article/details/127737877)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值