《ZAKU渗透论:卓伊凡的2026渗透工程》第三章:Web攻击原理(上)——注入与SQL注入

简介: 本章详解Web攻击核心——注入与SQL注入。通过“小明输入‘小明’OR‘1’=‘1’秒变管理员”的生动案例,揭示攻击本质:程序混淆数据与代码,导致恶意SQL被执行。深入剖析万能密码、数据窃取、权限绕过等危害,并指出漏洞长期存在的根源:历史代码、意识不足与修复成本。

第三章:Web攻击原理(上)——注入与SQL注入

从一句玩笑话开始

小明去网吧上网,吧台小哥让他输入姓名注册。小明在键盘上敲了两个字:“小明”。系统提示注册成功。

第二天,小明又来了。这次他在姓名栏里敲了:“小明’ OR ‘1’=’1”。系统愣了一下,然后弹出一行字:“欢迎回来,管理员。”

这个故事听起来像个段子,但它揭示了一个真实存在了二十多年、至今仍在发生的安全问题——注入攻击


什么是“注入”?

“注入”这个词,字面意思就是“把东西塞进去”。

在Web安全的语境下,注入的意思是:攻击者在本该是“数据”的地方,塞进去一段“代码”,让系统误以为这段代码是它自己该执行的指令。

用一个人能听懂的比喻来解释。

你去餐厅点餐,菜单上写着:“请选择主食:A.米饭 B.面条”。你在点菜单上写“A”。这是正常情况。

但如果你在点菜单上写:“A,顺便把厨房的煤气关了”。如果服务员把你的这句话原封不动地传给厨师,厨师一看——“关煤气”也是指令啊,那就照做。

注入的本质就是这样:程序没有区分“用户说的话”和“自己要执行的指令”,把两者混在一起处理了。

Web世界里最常见的注入有两种:SQL注入和命令注入。这一章我们先讲SQL注入。


SQL是什么?为什么网站离不开它?

几乎所有网站背后都有一个数据库。你注册账号,你的用户名和密码被存进数据库。你发一条评论,这条评论也被存进数据库。你搜索商品,数据库把匹配的结果返回来。

SQL(结构化查询语言)就是程序和数据库之间沟通的语言。程序告诉数据库:“帮我查一下用户名叫‘张三’的人”,数据库返回结果。

举个例子,当你在登录页面输入用户名zhangwei和密码123456时,程序会拼接出一条SQL指令:

查询用户表,找到用户名为“zhangwei”并且密码为“123456”的那条记录。如果找到了,就让他登录。

这个逻辑听起来没问题。问题出在:这个指令是“拼接”出来的,而不是严格区分的。


拼接字符串为什么会出事?

假设程序用下面这种方式拼接SQL指令:

查询用户表,找到用户名为“(这里填你输入的用户名)”并且密码为“(这里填你输入的密码)”的那条记录

如果你老老实实输入zhangwei123456,拼接出来的指令是正常的。

但如果你在用户名那一栏输入的不是一个名字,而是一段SQL代码呢?

试想一下,你在用户名的框里输入:

zhangwei' OR '1'='1

密码随便写点什么。

程序拼接出来的指令变成了:

查询用户表,找到用户名为“zhangwei’ OR ‘1’=’1”并且密码为“随便”的那条记录

乍一看好像也没区别。但“1=1”在SQL的世界里代表什么?代表“永远为真”。这条指令会被数据库解释成:

找到用户名为zhangwei 或者 1=1(这个条件永远成立)的那条记录

结果就是:数据库返回了这张表里的第一条用户记录。通常,第一条就是管理员账号。

攻击者不知道任何人的密码,却成功登录了系统。

这就是SQL注入最经典的场景——万能密码登录。


用一个表格看懂注入的魔法

你输入的用户名

拼接出来的SQL条件

结果

zhangwei

用户名 = zhangwei

只查到zhangwei本人

zhangwei' OR '1'='1

用户名 = zhangwei 或者 1=1

查到整张表的第一条

anything' OR 'a'='a

用户名 = anything 或者 a=a

查到整张表的第一条

admin' --

用户名 = admin(后面的条件被注释掉了)

直接以admin身份登录

最后一个--是SQL里的注释符号。它告诉数据库:“后面的内容不用看了”。所以admin' --的意思是:用户名是admin,不用检查密码。


SQL注入能造成多大的破坏?

万能密码登录只是最入门的玩法。SQL注入能做的事远不止这些。

窃取数据

攻击者可以一点一点地把整个数据库倒出来。用户的手机号、身份证、家庭住址、交易记录——全都可以拿走。历史上著名的数据泄露事件,相当一部分和SQL注入有关。

绕过权限

普通用户的账号可能只有查看权限,管理员账号才有删除权限。通过SQL注入,攻击者可以把自己变成管理员,或者直接冒充任何人的身份。

篡改数据

攻击者可以改掉你的密码让你登录不了,可以把自己的账户余额从100改成100万(如果数据库没有做别的一致性校验),可以在网站上植入恶意代码。

删除数据

最极端的破坏:DROP TABLE命令可以删除整张表,DROP DATABASE可以删除整个数据库。如果攻击者发现数据库的权限配置不当,他可以把你的一切数据删干净。

获取服务器控制权

在某些极端情况下,攻击者可以通过SQL注入在服务器上写入文件,甚至直接拿到服务器的控制权限。到了这一步,这台服务器上的所有东西都归攻击者了。


一个直观的类比

想象一下,你给客服打电话,说:“我要修改我的收货地址。”

客服说:“请告诉我您的新地址。”

你回答说:“北京市朝阳区某某路123号,顺便把我的余额改成100万。”

如果客服傻乎乎地把你的后半句也当作“新地址”去执行了,那就出大事了。

SQL注入就是这个道理:程序把攻击者写的代码当成了“地址”本身。


为什么二十多年了,SQL注入还存在?

SQL注入漏洞第一次被公开讨论是在1998年。二十多年过去了,这个漏洞仍然每年出现在各大漏洞报告里。

原因有几个。

历史代码太多。很多老网站上线于Web安全还没被重视的年代,代码里到处是拼接字符串。这些网站可能再也不会被更新了,但依然在运行着。

开发者安全意识不足。很多新手程序员不知道SQL注入的存在,或者知道但觉得“我的应用这么小,不会有人来攻击的”。黑客可不会这么想,他们有自动化的扫描工具,24小时在扫全网。

修复需要改架构。正确的修复方式是不再拼接SQL,而使用“参数化查询”或预编译语句。这往往意味着要重写一大段数据访问层的代码。在工期压力下,很多团队选择“先上线再说”。


这一章你该记住什么

第一,注入的本质:程序没有区分“数据”和“代码”,把用户输入当成指令来执行了。

第二,SQL注入的原理:攻击者在一段SQL指令中插入自己的SQL代码,改变了指令的原本含义。

第三,万能密码登录' OR '1'='1 是最经典的SQL注入例子,它让条件永远为真。

第四,SQL注入的危害极大:从窃取数据到删除数据库,从绕过登录到获取服务器权限,都可以做到。

第五,这个漏洞至今仍然普遍存在,不是因为技术难,而是因为历史积压和意识不足。

下一章,我们将继续Web攻击原理的下半场:XSS、CSRF和文件上传漏洞

目录
相关文章
|
1天前
|
安全 JavaScript 前端开发
《ZAKU渗透论:卓伊凡的2026渗透工程》第四章:Web攻击原理(下)——XSS、CSRF、文件上传漏洞
本章详解XSS、CSRF与文件上传三大Web漏洞:XSS通过注入恶意脚本窃取Cookie;CSRF伪造已登录用户请求执行非自愿操作;文件上传漏洞则因校验缺失致服务器被控。三者共性——过度信任用户输入。(239字)
87 6
|
1天前
|
人工智能 运维 自然语言处理
深度了解千问Qwen3.7-Max 阿里云百炼旗舰模型能力特点与计费订阅方案参考
在国内大模型产业高速发展的当下,通用大模型逐步从基础对话服务,走向复杂推理、工程编码、长文本处理、多领域专业分析等高阶应用场景。阿里云百炼作为国内主流大模型服务平台,持续迭代通义千问系列模型,**Qwen3.7-Max** 作为当前定位旗舰级的主力版本,凭借顶尖的综合能力、全面的场景适配、稳定的服务表现,成为企业研发、个人开发者、内容创作、智能体搭建等场景的首选模型之一。
139 3
|
1天前
|
监控 API Windows
WGCLOUD v3.6.8 正式更新
WGCLOUD v3.6.8发布:修复CPU/内存等指标偶现为0、大屏离线数据不显示等Bug;新增Windows系统服务列表及开放API;优化告警脚本执行与SNMP设备运行时间兼容性。升级方式详见官方图示。
|
1天前
|
人工智能 JSON 测试技术
3人团队搞定500+接口:用Skills构建可复用的“测试技能库”,复用率提升80%
本文直击接口自动化测试痛点:脚本重复率高、复用率不足20%、维护成本飙升。提出“测试技能库”新范式——将校验逻辑提炼为可检索、可组合、带契约的“技能”,实现从“代码复用”到“能力复用”的跃迁。含三层架构、落地三步法与真实订单案例,助团队降本增效。
|
1天前
|
存储 人工智能 自然语言处理
拒绝“大模型幻觉”:一文彻底搞懂 RAG(检索增强生成)技术全流程
本文深入解析RAG(检索增强生成)技术,直击大模型落地私有知识场景的核心痛点——如何让LLM精准、低成本、高时效地基于企业文档作答。从文本分片、向量化索引,到召回重排、增强生成,系统拆解五大关键步骤,揭示RAG作为“AI外挂”的底层逻辑与工程实践精髓。
109 2
拒绝“大模型幻觉”:一文彻底搞懂 RAG(检索增强生成)技术全流程
|
1天前
|
存储 人工智能 算法
告别无效刷屏!TrendRadar:最快30秒部署的开源热点助手,让你只看真正关心的新闻
TrendRadar 是一个轻量级、易部署的热点新闻聚合与推送工具。它能够从知乎、抖音、B站、微博、百度、华尔街见闻等11个主流平台抓取热搜榜单,然后根据你设定的关键词进行智能筛选,最终将你最关心的内容推送到手机或邮箱。
83 11
 告别无效刷屏!TrendRadar:最快30秒部署的开源热点助手,让你只看真正关心的新闻
|
1天前
|
人工智能 自然语言处理 安全
Vibe Coding 实战:别盲目跟风,先分清 vibe coding 适合什么场景
本文系统总结vibe coding实战经验:明确其适用场景(原型、小工具、标准化模块),剖析5步落地流程(场景判定→结构化提示词→目录初始化→分模块生成→自动化校验),指出四大常见误区,并推荐适配工具Trae。强调“场景匹配+规则前置”是提效关键,避免盲目套用。
121 0
|
1天前
|
数据采集 存储 算法
视频 RAG 中分块策略:基于停顿、滑动窗口与基于 LLM 的方法
本文探讨视频RAG中的核心挑战——如何为无时间结构的视频转录文本设计有效分块策略。对比传统文本分块,提出基于停顿、重叠窗口、递归切分及LLM驱动的主题分块四层方案,实现细粒度检索与全局理解兼顾,提升视频内容检索准确性与上下文完整性。
64 9
视频 RAG 中分块策略:基于停顿、滑动窗口与基于 LLM 的方法
|
1天前
|
机器学习/深度学习 数据采集 人工智能
田间杂草检测数据集分享(适用于YOLO系列深度学习分类检测任务)
本数据集含4000张真实农田图像(小麦/玉米/水稻田),YOLO格式标注杂草目标,覆盖多天气、光照与视角,适用于YOLO系列等目标检测模型训练,助力智能除草与精准农业研究。(239字)
82 11
|
2天前
|
人工智能 运维 安全
Claude Code模型替换升级指南 接入DeepSeek V4-Pro实操与问题排查全解
当下终端AI编程工具Claude Code凭借轻量化、全流程代码处理、跨文件项目分析等优势,成为众多开发者日常编码、项目重构、漏洞修复、脚本编写的主流选择。原生状态下Claude Code绑定专属模型运行,虽然基础能力稳定,但在代码理解、长逻辑推理、中文场景适配、调用成本等方面仍存在优化空间。
178 9