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>

得到攻击结果

相关推荐
WYiQIU13 分钟前
面了一次字节前端岗,我才知道何为“造火箭”的极致!
前端·javascript·vue.js·react.js·面试
qq_3168377514 分钟前
uniapp 观察列表每个元素的曝光时间
前端·javascript·uni-app
小夏同学呀16 分钟前
在 Vue 2 中实现 “点击下载条码 → 打开新窗口预览 → 自动唤起浏览器打印” 的功能
前端·javascript·vue.js
芳草萋萋鹦鹉洲哦16 分钟前
【vue】导航栏变动后刷新router的几种方法
前端·javascript·vue.js
1***y17827 分钟前
Vue项目性能优化案例
前端·vue.js·性能优化
谢尔登1 小时前
【CSS】样式隔离
前端·css
百***58841 小时前
Redis 通用命令
前端·redis·bootstrap
Liu.7741 小时前
vue3 路由缓存导致onMounted无效
前端·javascript·vue.js
e***U8202 小时前
React Hooks性能优化
前端·react.js·前端框架