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>

得到攻击结果

相关推荐
Mintopia2 分钟前
2025,我的「Vibe Coding」时刻
前端·人工智能·aigc
西凉的悲伤15 分钟前
html制作太阳系行星运行轨道演示动画
前端·javascript·html·行星运行轨道演示动画
C_心欲无痕18 分钟前
网络相关 - http1.1 与 http2
前端·网络
一只爱吃糖的小羊20 分钟前
Web Worker 性能优化实战:将计算密集型逻辑从主线程剥离的正确姿势
前端·性能优化
低保和光头哪个先来20 分钟前
源码篇 实例方法
前端·javascript·vue.js
你真的可爱呀27 分钟前
自定义颜色选择功能
开发语言·前端·javascript
小王和八蛋31 分钟前
JS中 escape urlencodeComponent urlencode 区别
前端·javascript
奔跑的web.31 分钟前
TypeScript类型系统核心速通:从基础到常用复合类型包装类
开发语言·前端·javascript·typescript·vue
Misnice32 分钟前
Webpack、Vite 、Rsbuild 区别
前端·webpack·node.js
Kagol35 分钟前
🎉历时1年,TinyEditor v4.0 正式发布!
前端·typescript·开源