还在害怕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.视频教程
网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我们和网安大厂360共同研发的的网安视频教程,之前都是内部资源,专业方面绝对可以秒杀国内99%的机构和个人教学!全网独一份,你不可能在网上找到这么专业的教程。

内容涵盖了入门必备的操作系统、计算机网络和编程语言等初级知识,而且包含了中级的各种渗透技术,并且还有后期的CTF对抗、区块链安全等高阶技术。总共200多节视频,200多G的资源,不用担心学不全。
在这里插入图片描述
因篇幅有限,仅展示部分资料,需要见下图即可前往获取

🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源

3.技术文档和电子书
技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,由于内容的敏感性,我就不一一展示了。

在这里插入图片描述

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

🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源

4.工具包、面试题和源码
“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。

还有我视频里讲的案例源码和对应的工具包,需要的话也可以拿走。

🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源

最后就是我这几年整理的网安方面的面试题,如果你是要找网安方面的工作,它们绝对能帮你大忙。

这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。

参考解析:深信服官网、奇安信官网、Freebuf、csdn等

内容特点:条理清晰,含图像化表示更加易懂。

内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…

在这里插入图片描述

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

🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源
————————————————

本文转自 https://blog.youkuaiyun.com/A1_3_9_7/article/details/149256302?spm=1001.2014.3001.5502,如有侵权,请联系删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值