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>

得到攻击结果

相关推荐
代码老y7 分钟前
十年回望:Vue 与 React 的设计哲学、演进轨迹与生态博弈
前端·vue.js·react.js
一条上岸小咸鱼13 分钟前
Kotlin 基本数据类型(五):Array
android·前端·kotlin
大明8816 分钟前
用 mouseover/mouseout 事件代理模拟 mouseenter/mouseleave
前端·javascript
小杨梅君18 分钟前
vue3+vite中使用自定义element-plus主题配置
前端·element
一个专注api接口开发的小白23 分钟前
Python + 淘宝 API 开发:自动化采集商品数据的完整流程
前端·数据挖掘·api
林太白23 分钟前
Nuxt.js搭建一个官网如何简单
前端·javascript·后端
晴空雨24 分钟前
一个符号让 indexOf 判断更优雅!JavaScript 位运算的隐藏技巧
前端·javascript
摸着石头过河的石头24 分钟前
前端调试全攻略:从PC到移动端的一站式实战指南
前端·debug
小猪猪屁26 分钟前
🚀 用 Nuxt3 打造公司官网:一场从 0 到 1 的实战冒险
前端
傅里叶41 分钟前
Flutter在OrangePi 5 Plus上视频播放锁死问题
前端·flutter