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>

得到攻击结果

相关推荐
baozj几秒前
告别截断与卡顿:我的前端PDF导出优化实践
前端·javascript·vue.js
傲文博一1 分钟前
为什么我的产品尽量不用「外置」动态链接库
前端·后端
Healer9182 分钟前
Promise限制重复请求
前端
梵得儿SHI2 分钟前
Vue 响应式原理深度解析:Vue2 vs Vue3 核心差异 + ref/reactive 实战指南
前端·javascript·vue.js·proxy·vue响应式系统原理·ref与reactive·vue响应式实践方案
chenyunjie4 分钟前
我做了一个编辑国际化i18n json文件的命令行工具
前端
Emma歌小白7 分钟前
移除视觉对象里“行的型号”造成的行级筛选,但不移除用户的 slicer 筛选
前端
茶杯6759 分钟前
“舒欣双免“方案助力MSI-H/dMMR结肠癌治疗新突破
java·服务器·前端
昔人'9 分钟前
css `svh` 单位
前端·css
转转技术团队10 分钟前
浏览器自动化革命:从 Selenium 到 AI Browser 的 20 年进化史
前端
uhakadotcom11 分钟前
全面解析:GeoJSON 与 TopoJSON 的定义、差异及适用场景
前端·面试·github