Pikachu-xss防范措施 - href输出 & js输出

总体原则: 输入做过滤,输出做转义

过滤:根据业务需要进行过滤,如:输入点要求输入手机号,则只允许输入手机号格式的数字;

转义:所有输出到前端的数据,都根据输出点进行转义,比如输出到html中进行html实体转义,输入到 JS 里面的进行 JS 转义。

href输出

从页面代码上看出,这是个href 标签,并且做了href特殊字符转换

构造payload ,

复制代码
javascript:alert(1)

要想防止href 标签的xss : 一、可以做输入限定,只允许http 、https 的头的输入;二、结合输入限定后再做特殊字符转义。

JS 输出

查看后端代码

核心点是:$ms == 'tmac'

所以要构造payload, 先闭合引号 用 X' 闭合 script 用 </script> , 单独一组script包着alert,再来一个script对应结尾的 /script 所以整个报文就是:

复制代码
X'</script><script>alert(1)</script><script>

得到攻击结果

相关推荐
小文刀6963 分钟前
CSS-响应式布局
前端
三小河8 分钟前
overflow:auto 滚动的问题,以及flex 布局中如何设置
前端·javascript
薛定谔的算法12 分钟前
phoneGPT:构建专业领域的检索增强型智能问答系统
前端·数据库·后端
Hilaku13 分钟前
Token已过期,我是如何实现无感刷新Token的?
前端·javascript·面试
小文刀69616 分钟前
2025-35st-w-日常开发总结
前端
我是日安19 分钟前
从零到一打造 Vue3 响应式系统 Day 8 - Effect:深入剖析嵌套 effect
前端·vue.js
小lan猫23 分钟前
React学习笔记(一)
前端·react.js
晨米酱23 分钟前
JavaScript 中"对象即函数"设计模式
前端·设计模式
拜无忧23 分钟前
【教程】Nuxt v4 入门指南与实践 (vue前端角度开发)
前端·nuxt.js
云枫晖27 分钟前
手写Promise-什么是Promise
前端·javascript