主要观点总结
文章介绍了作者挖掘XSS漏洞的过程,包括宽字节吃掉转义字符、利用Unicode编码触发隐式DOM-XSS、基于井号的隐式DOM-XSS、字符串相加触发DOM-XSS等技术手段,以及针对某些Web应用特殊防范措施的应对策略。文章还总结了XSS漏洞防范的建议,并强调了学好Javascript的重要性。
关键观点总结
关键观点1: 宽字节吃掉转义字符
利用宽字节编码绕过页面编码过滤机制,实现XSS漏洞利用。
关键观点2: Unicode编码触发隐式DOM-XSS
通过Unicode编码和URL编码构造特殊的XSS测试语句,绕过各种过滤与拦截机制。
关键观点3: 基于井号的隐式DOM-XSS
利用URL中#号后面的片段标识符未被服务端处理的特性,执行嵌入的JavaScript代码。
关键观点4: 字符串相加触发DOM-XSS
通过字符串拼接的方式构造XSS攻击语句,使用setTimeout方法触发弹窗。
关键观点5: 分段提交绕过长度限制
针对XSS payload长度限制的问题,采用分段提交和注释符拼接的方式绕过限制。
关键观点6: 二次存储型XSS
某些Web应用对用户提交的数据进行HTML编码和过滤,但在重新调用过程中可能进行HTML解码,导致XSS漏洞继续存在。
关键观点7: 总结建议
文章总结了针对XSS漏洞的防范措施,包括HTML编码、关键字过滤、防范二次XSS等,并强调了学好Javascript的重要性。
文章预览
Part1 前言 大家好,我是ABC_123 。最近翻看之前的笔记,发现曾经有一段时间特别热衷于挖掘各式各样的XSS漏洞,于是挑选了几个比较有意思的XSS漏洞案例,重新整理一下分享给大家。重新整理笔记,也是一个学习与提升的过程,改正了之前笔记的一些错误。 Part2 技术研究过程 利用宽字节吃掉转义字符 这个案例是源于之前测过的一个有奖活动介绍的Web页面,整个子域名只有两个html静态页面,通过burpsuite抓包发现没有任何动态交互,因而漏洞挖掘的难度非常大。查看当前html页面源码,分析了一下JS代码,发现了memberId的传值会在当前页面回显,也就意味着存在XSS漏洞的可能性,但是需要闭合双引号。 输入测试payload 402881111”; window.open(); // ,发现当前页面对XSS进行了防范,会对双引号进行转义而变成如下形式: var memberId=”402881111\”; window.open();
………………………………