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>

得到攻击结果

相关推荐
不爱吃糖的程序媛1 小时前
浅谈前端架构设计与工程化
前端·前端架构设计
郝YH是人间理想3 小时前
系统架构设计师案例分析题——web篇
前端·软件工程
Evaporator Core3 小时前
深入探索:Core Web Vitals 进阶优化与新兴指标
前端·windows
初遇你时动了情3 小时前
html js 原生实现web组件、web公共组件、template模版插槽
前端·javascript·html
QQ2740287564 小时前
Soundness Gitpod 部署教程
linux·运维·服务器·前端·chrome·web3
前端小崔4 小时前
从零开始学习three.js(18):一文详解three.js中的着色器Shader
前端·javascript·学习·3d·webgl·数据可视化·着色器
哎呦你好4 小时前
HTML 表格与div深度解析区别及常见误区
前端·html
运维@小兵4 小时前
vue配置子路由,实现点击左侧菜单,内容区域显示不同的内容
前端·javascript·vue.js
koiy.cc5 小时前
记录:echarts实现tooltip的某个数据常显和恢复
前端·echarts
一只专注api接口开发的技术猿5 小时前
企业级电商数据对接:1688 商品详情 API 接口开发与优化实践
大数据·前端·爬虫