0x01 阅读须知
鸡哥安全的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本文所提供的工具仅用于学习,禁止用于其他!!!
0x02 XSS说明
XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。
0x03 题目解析
靶场地址:https://portswigger.net/web-security/all-labs
XSS题目二十、在规范链接标签中反映 XSS
1.使用payload,闭合单引号且当出现点击事件时,弹出1
https://x.x.x.x/?%27accesskey=%27x%27onclick=%27alert(1)
解析:
1.规范链接:(Canonical Link)是一种 Web 标准化方式,用于解决 URL 重复的问题。通过指定规范 URL 连接,我们可以避免通过不同方式链接到相同内容的重复URL带来的问题,从而提高搜索引擎优化,提升网站访问性能和用户体验。
规范链接常表现为以下格式:
<link rel="canonical" href="https://example.com/product/12345" />
rel 属性:对应的值为 canonical 表示该链接为规范连接。
href 属性:指包含规范版本页面的 URL 地址。
当在 HTML 文件中包含规范链接时,搜索引擎会识别并显示基于规范链接提供的 URL 的任何内容,通常也只索引规范 URL。这样做可以消除由复制内容和任意重复 URL 带来的搜索引擎排名和排名问题,提高 SEO 效果,同时提高站点的技术可靠性和可维护性。
2.注入后显示在前端xss代码为
<link rel="canonical" href='https://0a7900f30487f89882fa01ad00640083.web-security-academy.net/?'accesskey='x'onclick='alert(1)'/>
这行 HTML 代码使用了 <link> 标签,并定义了一个规范链接(canonical link),目的是让搜索引擎将这个 URL 地址作为该页面的规范地址参考。分析该代码中各个属性的含义如下:
rel="canonical":指定此链接元素为规范链接元素,该元素应与原网页具有相似但不完全相同的内容。
href='https://0a7900f30487f89882fa01ad00640083.web-security-academy.net/?'accesskey='x'onclick='alert(1)'>:指定规范链接地址,该链接嵌入了两个属性 accesskey 和 onclick,分别设置属性值为字符 'x' 和 Javascript 命令 alert(1)。
很明显,其中 JavaScript 代码未被进行任何编码和过滤,可能会导致反射型 XSS 攻击漏洞。一旦受害者点击该规范链接,则会执行嵌入URL当中的恶意代码,进而弹出警告框并执行钓鱼攻击,从而损害用户数据的机密性、可用性和完整性等方面的安全性。
3.点击事件触发弹窗
在Windows上:ALT + SHIFT + X
在Mac操作系统上:CTRL + ALT + X
在Linux上:Alt + X
0x04 挖掘和防御
1.标签过滤
2.事件过滤
3.敏感字符过滤
4.设置httponly防止Cookie被获取
5.内容安全策略(CSP)
6.在将不可信数据插入到HTML标签之间时,对这些数据进行HTML Entity编码
7.在将不可信数据插入到HTML属性里时,对这些数据进行HTML属性编码
8.在将不可信数据插入到SCRIPT里时,对这些数据进行SCRIPT编码
9.在将不可信数据插入到Style属性里时,对这些数据进行CSS编码
1个1朵5毛钱
天天搬砖的小M
能不能吃顿好的
就看你们的啦
原文始发于微信公众号(鲲哥的Bypass之旅):portswigger靶场-Lab20: 在规范链接标签中反映 XSS
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论