0x01 阅读须知
鸡哥安全的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本文所提供的工具仅用于学习,禁止用于其他!!!
0x02 XSS说明
XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。
0x03 题目解析
靶场地址:https://portswigger.net/web-security/all-labs
XSS题目七、将 XSS 反射到带有尖括号的 HTML 编码的属性中
1.输入框输入abcd,发现abcd回显在input标签的value="abcd"
<input type=text placeholder='Search the blog...' name=search value="abcd">
解析:
type属性为text,表示输入框类型为文本输入框。
placeholder属性为"Search the blog…",表示在输入框中显示的提示文本。
name属性为search,表示该输入框的名称为search,用于在提交表单时标识该输入框的值。
value属性为"abcd",表示输入框的初始值为"abcd",即在页面加载时输入框中默认显示的文本。
2.闭合双引号,并使用onmouseover事件和alert(1)组合成xss payload
"onmouseover="alert(1)
=>
<input type=text placeholder='Search the blog...' name=search value=""onmouseover="alert(1)">
解析:
onmouseover是一个鼠标事件,表示鼠标移动到该标签上方时触发。
alert(1)是一个JavaScript函数,用于在浏览器中弹出一个警告框,显示数字1。
综上,该代码实现了一个带有提示文本和默认值为空的文本输入框,并在鼠标移动到该输入框上方时,在浏览器中弹出一个警告框,显示数字1。
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靶场-Lab7: 将 XSS 反射到带有尖括号的 HTML 编码的属性中
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论