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 分钟前
涨见识了,Error.cause 让 JavaScript 错误调试更轻松
前端·javascript·node.js
一千柯橘12 分钟前
Electron 第一步
前端·electron
code_Bo15 分钟前
Ant Design Vue 日期选择器英文不变更中文问题
前端·vue.js·ant design
啃火龙果的兔子16 分钟前
react-i18next+i18next-icu使用详解
前端·javascript·react.js
彭于晏爱编程18 分钟前
🌹🌹🌹bro,AntD 6.0.0 来了
前端
1024小神21 分钟前
Electron实现多tab页案例,BrowserView/iframe/webview不同方式的区别
前端·javascript·electron
Amos_Web30 分钟前
Rust实战(四):数据持久化、告警配置与Web API —— 构建监控系统的功能闭环
前端·后端·rust
java水泥工35 分钟前
基于Echarts+HTML5可视化数据大屏展示-物流大数据展示
大数据·前端·echarts·html5·可视化大屏
U***e6336 分钟前
Vue自然语言
前端·javascript·vue.js
用户761736354011 小时前
浏览器渲染原理
前端·浏览器