[张三的渗透日记]一次多变量突破防护的XSS
字数 531 2025-08-11 08:36:22
多变量拼接突破防护的XSS攻击技术分析
漏洞发现与初步分析
漏洞点定位
- 发现目标系统中的"月份"变量虽然前端通过选择列表输入,但后端未严格验证,允许通过Burp Suite直接修改
- 测试发现单引号可以闭合原有HTML属性,将用户输入直接嵌入到
onclick事件中
初始测试结果
- 直接构造XSS语句
month=2023-04'><script>alert(1)</script>导致500错误 - 并非关键字过滤,而是变量长度限制(20个字符)
- 基本XSS构造如
'>超出长度限制
多变量拼接技术
可控参数分析
- 三个可控参数:
month(长度限制20字符)energyValue(长度限制20字符)waterValue(长度限制20字符)
- 参数位置:位于
<a>标签的onclick事件中 - 输出特性:可使用单引号和尖括号闭合HTML标签
拼接思路
- 变量1:闭合前面的a标签并开始XSS语句
- 变量2:完成XSS语句的构造
- 利用多个参数共同完成一个有效载荷的构造
实际Payload构造
type=edit&energyUnit=1&energyValue='%20onerror=alert()>&waterUnit=3&waterValue=4&month='>
绕过防护措施
JavaScript弹窗限制
- 发现系统禁用了
alert()和prompt()函数 - 使用
confirm()函数成功绕过:
type=edit&energyUnit=1&energyValue='%20onerror=confirm()>&waterUnit=3&waterValue=4&month='>