《ZAKU渗透论:卓伊凡的2026渗透工程》第四章:Web攻击原理(下)——XSS、CSRF、文件上传漏洞

简介: 本章详解XSS、CSRF与文件上传三大Web漏洞:XSS通过注入恶意脚本窃取Cookie;CSRF伪造已登录用户请求执行非自愿操作;文件上传漏洞则因校验缺失致服务器被控。三者共性——过度信任用户输入。(239字)

第四章:Web攻击原理(下)——XSS、CSRF、文件上传漏洞

三种常见的攻击方式

上一章我们讲了SQL注入——攻击者把代码塞进数据库查询语句里,骗数据库执行。这一章我们讲另外三种常见的Web攻击:XSS、CSRF和文件上传漏洞。

这三种攻击的目标不同、手法不同,但有一个共同点:它们都利用了网站对用户输入“过于信任”这个毛病。


XSS:跨站脚本攻击

什么是XSS?

XSS的全称是跨站脚本攻击(Cross-Site Scripting)。这个名字很拗口,但它的本质很简单:攻击者把一段恶意脚本(通常是JavaScript)注入到网页里,当其他用户访问这个网页时,这段脚本就会在他們的浏览器里执行。

用人话解释一下。

你开了一家留言板网站,用户可以在这里写任何内容。有一天,有个用户没有写“你好”,而是写了一段JavaScript代码,内容是“把访问者的Cookie发送到我的服务器”。你的网站没有做任何过滤,直接把这段代码存进了数据库。

从此以后,每个访问这个留言板的用户,浏览器都会自动执行这段代码,把自己的Cookie悄悄发给了攻击者。

攻击者拿到你的Cookie,就可以冒充你登录这个网站。

XSS的三种类型

反射型XSS是最常见的一种。攻击者把恶意脚本放在一个链接里,比如http://example.com/search?q=<script>恶意代码</script>,然后诱骗用户点击这个链接。当用户点击后,网站把<script>原样返回并在浏览器执行。这种攻击是一次性的,不会存进数据库。

存储型XSS危害更大。攻击者的恶意脚本被永久存储在服务器上(比如存在留言板、评论区、个人简介里)。每个访问这个页面的用户都会中招。这就是前面举例的那种。

DOM型XSS稍微特殊一点。它不经过服务器,纯粹是前端JavaScript自己拼接内容时出了问题。比如从URL里取出参数,直接写到页面上,中间没有任何过滤。

XSS能做什么?

XSS能做的事情非常多。窃取用户的Cookie是最基础的。偷走用户在网站上的所有隐私信息、截屏、记录键盘输入、弹窗钓鱼、强制关注某个账号、甚至发动更大规模的攻击。在JavaScript的能力范围内,XSS几乎可以做任何事。

一个直观的比喻

想象一下,你在办公室里贴了一张公告,上面写着“下午三点开会”。如果有个同事在公告下面贴了一张纸条,写着“请所有人把工牌交给小张”,然后你每次看到公告都以为这是真的,就把工牌给了别人。

XSS就是那个贴纸条的人。网页是公告板,用户的浏览器是看到公告的人。浏览器分不清“网站自己写的内容”和“攻击者塞进去的内容”。


CSRF:跨站请求伪造

什么是CSRF?

CSRF的全称是跨站请求伪造(Cross-Site Request Forgery)。它和XSS经常被搞混,但两者的攻击方向完全相反。

简单来说:XSS是攻击者在网页里植入恶意脚本;CSRF是攻击者诱导用户去执行一个用户本人不想做的操作。

用人话解释一下。

你登录了银行网站,银行网站的服务器记住了你的登录状态(通过Cookie)。这时候你点开了一个攻击者发的恶意链接。这个链接向银行网站发起了一个转账请求,比如http://bank.com/transfer?to=hacker&amount=10000

因为你的浏览器访问银行网站时,会带上你的Cookie,服务器看到这个请求是“你”发起的,就真的转了1万块钱给攻击者。

你什么都没做,钱就被转走了。

CSRF的核心条件

CSRF能成功需要同时满足三个条件。

第一,你已经登录了目标网站,浏览器里存着有效的Cookie或Token。第二,目标网站没有对请求的来源做校验,比如没有要求“确认密码”或“二次验证”。第三,攻击者能诱导你点击一个链接或访问一个恶意页面。

这三个条件在现实生活中很容易同时满足。很多人登录网站后就不退出了,一天都保持登录状态。这就给了CSRF可乘之机。

CSRF的典型攻击场景

除了转账,CSRF还可以做很多事:修改密码(把攻击者自己的手机号绑上去)、修改邮箱地址(让密码重置邮件发到攻击者邮箱)、发表恶意内容(用你的账号在论坛里发广告)、取消订单、发货地址篡改等等。

只要是网站提供的功能,CSRF都有可能“代替”你去执行。

XSS vs CSRF:一张表看懂

对比维度

XSS

CSRF

攻击目标

网站的用户

网站的用户

攻击方式

在网页里注入恶意脚本

诱导用户发起恶意请求

谁执行了恶意操作

用户的浏览器(自动执行脚本)

用户的浏览器(带着用户身份)

网站信任了什么

信任了用户的输入内容

信任了用户发起的请求

谁更危险

能做更多事(几乎任何JavaScript能做到的)

只能做网站已有的操作


文件上传漏洞

什么是文件上传漏洞?

很多网站允许用户上传文件:头像、附件、简历、图片等等。文件上传漏洞的意思是:攻击者上传了一个本不该被上传的文件类型,并且服务器把它当成了可执行文件来处理。

结果是,攻击者上传了一个“木马文件”,服务器乖乖地接受了。然后攻击者访问这个文件,木马被执行,服务器被控制。

攻击者是怎么做的?

正常情况下,一个图片上传功能只允许.jpg.png等图片格式。攻击者会想尽办法绕过这个限制。

最简单的情况是网站根本没有做任何检查。攻击者直接上传一个shell.php,里面写着一行代码“执行服务器上的任何命令”。然后访问这个文件,就可以在服务器上执行命令了。

稍微有点防护的网站会检查文件扩展名。但攻击者可以双写扩展名,比如shell.jpg.php;可以大小写绕过,比如shell.PhP;可以利用服务器解析漏洞,比如shell.php.jpg(某些旧版本Apache会把.jpg后缀的文件当作PHP解析,如果文件名里出现过.php)。

更高级的绕过手段还包括:修改文件Content-Type(把application/x-php改成image/jpeg)、图片马(把恶意代码塞进一张正常的图片里)、压缩包上传(上传一个包含恶意文件的zip,期望服务器自动解压)等等。

文件上传漏洞的后果

最直接的后果是获取服务器控制权。攻击者上传一个Webshell(一种通过网页就能执行服务器命令的后门),然后就可以在服务器上:查看所有文件、修改所有数据、删除所有内容、安装勒索病毒、把服务器变成挖矿肉鸡、用这台服务器去攻击其他网站。

如果这台服务器还能访问内网,攻击者就可以以此为跳板,入侵公司内部的其他机器。

一个看似无害的“上传头像”功能,可能成为整个公司安全的突破口。

真实世界的例子

某知名招聘网站的简历上传功能,允许用户上传PDF和Word文件。攻击者上传了一个伪装成简历的恶意文件,服务器自动解析时触发了漏洞,攻击者成功拿到了服务器的控制权限。这个漏洞被公开后,数百万份求职者的简历信息被窃取。


三种攻击的共同本质

XSS、CSRF、文件上传漏洞看似各不相同,但它们的本质是一样的:网站没有正确地处理用户输入。

攻击类型

信任了什么不该信的

后果

XSS

信任了用户输入的内容,直接输出到网页

恶意脚本在用户浏览器执行

CSRF

信任了用户发起的请求,没有验证是否是用户本意

用户被利用执行非自愿操作

文件上传

信任了用户上传的文件,没有检查是否是恶意文件

服务器被植入后门


这一章你该记住什么

第一,XSS是把恶意脚本注入网页,让其他用户的浏览器执行。窃取Cookie是最常见的用途。

第二,CSRF是诱导已登录用户发起恶意请求,代替用户执行操作。转账、改密码、改邮箱都有可能。

第三,XSS和CSRF的区别:XSS在网页里下毒,CSRF在网页外诱导。两者攻击方向相反,但都利用了网站对“用户”的信任。

第四,文件上传漏洞是允许攻击者上传恶意可执行文件。后果往往是最严重的——直接拿到服务器控制权。

第五,这三种攻击的共同本质:网站错误地信任了用户提供的内容。只要区分“用户数据”和“可执行代码/操作”,就能理解它们为什么危险。

下一章,我们将进入现代Web安全的核心:现代登录是怎么被绕过的?——JWT、OAuth、Cookie与Token安全。

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