news 2026/4/18 14:06:25

sqliabs靶场21-25关攻略

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
sqliabs靶场21-25关攻略

Less-21:Cookie注入(Base64编码+单引号+括号闭合)

  1. 判断注入类型与闭合方式:首先访问关卡页面,使用默认账号密码(admin/admin)登录,页面会显示当前登录用户信息。按F12打开开发者工具,切换到「Application」→「Cookies」,找到名为uname的Cookie,其值为YWRtaW4=(即admin的Base64编码)。

  2. 尝试构造恶意Payload(未编码):admin') and 1=1#,将其进行Base64编码,得到YWRtaW4nKSBhbmQgMT0xIw==,替换原有Cookie值,刷新页面,页面正常显示,说明闭合方式正确;若将Payload改为admin') and 1=2#,编码后替换Cookie,页面无内容,确认存在注入漏洞。

  3. 爆数据库名:构造报错注入Payload(未编码):admin') and updatexml(1,concat(0x7e,(select database()),0x7e),1)#,Base64编码后替换Cookie,刷新页面,报错显示数据库名security

  4. 后续可直接爆出数据

Less-22:Cookie注入(Base64编码+双引号闭合)

  1. 判断闭合方式:登录后查看Cookie,uname值仍为YWRtaW4=(admin的Base64编码)。构造Payload(未编码):admin" and 1=1#,Base64编码后替换Cookie,页面正常显示;替换为admin" and 1=2#,页面无内容,确认闭合方式为双引号。

  2. 爆表、爆字段、爆数据:步骤与21关完全一致,只需将Payload中的闭合符')改为",编码后提交即可,此处不再重复赘述。

Less-23:GET字符型注入(过滤注释符)

  1. 判断注入类型与闭合方式:访问关卡页面,页面报错,提示You have an error in your SQL syntax,确认是单引号闭合的字符型注入;尝试使用?id=1 #?id=1' --(注意--后有空格),依然有报错,判断注释被过滤掉了。

  2. 绕过注释过滤:使用and '1'='1闭合剩余SQL语句,构造Payload:?id=1' and '1'='1,页面正常显示;改为?id=1' and '1'='2,页面无内容,确认注入漏洞存在,且绕过注释过滤成功。

  3. 爆数据库名:构造报错注入Payload:?id=-1' union select 1,database(),3 and '1'='1,页面显示数据库名security(使用union注入时,需将id改为负数,确保原始查询无结果,让union查询结果显示)。

  4. 后续可直接爆出数据

Less-24:POST二次注入(存储型)

1. 理解二次注入原理:注册页面使用 mysqli_real_escape_string() 函数对用户名、密码进行转义(单引号会被转义为 \'),直接注入无效;但当注册的恶意用户名被存储到数据库后,修改密码时,系统会读取该用户名并拼接进SQL语句,此时转义失效,恶意Payload被执行。

2. 注册恶意账号:访问注册页面(New User),注册用户名设为 admin'#,密码设为 123456(两次输入一致),点击注册。此时数据库中存储的用户名是 admin'#(转义后存储,但读取时未转义)。

3.登录恶意账号:使用注册的账号admin'#和密码123456登录,进入修改密码页面。

4.触发二次注入:在修改密码页面,输入新密码(如test123),点击提交。此时系统执行的SQL语句为:UPDATE users SET password='test123' WHERE username='admin'#' AND password='123456',其中#注释掉了后面的内容,实际执行的是UPDATE users SET password='test123' WHERE username='admin',即修改了admin账号的密码。

5.验证结果:退出当前账号,使用admin作为用户名,test123作为密码登录,即可成功登录,证明二次注入成功。若想进一步获取数据库信息,可构造更复杂的恶意用户名(如admin' and updatexml(1,concat(0x7e,database()),1)#),注册后登录并修改密码,触发报错注入。

Less-25:GET字符型注入(过滤OR/AND关键字)

核心考点

GET字符型注入,单引号闭合,靶场通过黑名单过滤了ORAND关键字(不区分大小写),需通过“双写关键字”的方式绕过过滤,如将OR改为OORRAND改为AANDND,过滤函数会删除中间的OR/AND,剩余部分拼接成完整的关键字。

  1. 判断注入类型与过滤规则:修改为?id=1' or 1=1 -- +,页面无正常回显,说明OR关键字被过滤;尝试?id=1' oorr 1=1 -- +,页面正常显示,确认可通过双写绕过过滤,闭合方式为单引号。

  2. 绕过OR/AND过滤:所有需要使用OR的地方,替换为OORR;需要使用AND的地方,替换为AANDND,例如:?id=1' oorr 1=2 --+,页面无内容,验证绕过有效。

  3. 爆数据库名:构造报错注入Payload:?id=-1' oorr updatexml(1,concat(0x7e,(select database())),1) -- +,页面报错显示security

  4. 后续可直接爆出数据

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 14:05:28

深入0x5f3759df:从IEEE 754浮点数到那个‘WTF’魔法数字的完整推导

深入0x5f3759df:从IEEE 754浮点数到那个‘WTF’魔法数字的完整推导 当你在《雷神之锤III》的源代码中看到0x5f3759df这个十六进制数时,第一反应可能是——这到底是什么鬼?这个被注释为"what the fuck"的魔法数字,背后隐…

作者头像 李华
网站建设 2026/4/18 14:05:21

保姆级避坑指南:在Ubuntu 20.04上搞定YOLOv8 PT转ONNX再转RKNN(适配RK3588)

Ubuntu 20.04环境下YOLOv8模型RK3588部署全流程实战 当计算机视觉遇上边缘计算,如何在资源受限的嵌入式设备上实现高性能目标检测?本文将带你完整走通YOLOv8模型从PyTorch到RKNN的转换之路,特别针对RK3588芯片的NPU加速特性进行优化。不同于常…

作者头像 李华
网站建设 2026/4/18 14:05:19

MATLAB圆形图终极指南:3步实现专业网络可视化 [特殊字符]

MATLAB圆形图终极指南:3步实现专业网络可视化 📊 【免费下载链接】circularGraph 项目地址: https://gitcode.com/gh_mirrors/ci/circularGraph 想要快速将复杂的关系数据转化为直观的可视化图表吗?MATLAB圆形图(circular…

作者头像 李华
网站建设 2026/4/18 14:04:11

华硕笔记本性能调校终极指南:5分钟学会G-Helper高效控制

华硕笔记本性能调校终极指南:5分钟学会G-Helper高效控制 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Strix, …

作者头像 李华
网站建设 2026/4/18 14:02:49

从雷达信号到机器学习:ROC曲线的‘前世今生’与Python实战图解

从雷达信号到机器学习:ROC曲线的‘前世今生’与Python实战图解 二战期间,盟军雷达操作员面临一个生死攸关的挑战:如何在漫天噪声中准确识别敌方战机信号?这个看似与数据科学毫不相关的问题,却意外孕育了机器学习领域最…

作者头像 李华