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>

得到攻击结果

相关推荐
行走的陀螺仪3 分钟前
GitLab CI/CD 完整教学指南
前端·ci/cd·gitlab·团队开发·自动化测试部署
谢尔登15 分钟前
Webpack高级之常用配置项
前端·webpack·node.js
helloyangkl19 分钟前
前端——不同环境下配置env
前端·javascript·react.js
竹秋…21 分钟前
webpack搭建react开发环境
前端·react.js·webpack
以明志、26 分钟前
并行与并发
前端·数据库·c#
提笔了无痕26 分钟前
go web开发表单知识及表单处理详解
前端·后端·golang·web
甜味弥漫42 分钟前
JavaScript新手必看系列之预编译
前端·javascript
小哀242 分钟前
🌸 入职写了一个月全栈next.js 感想
前端·后端·ai编程
用户0102692718642 分钟前
swift的inout的用法
前端
用户6600676685391 小时前
搞懂作用域链与闭包:JS底层逻辑变简单
前端·javascript