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>

得到攻击结果

相关推荐
程序员小李白13 小时前
js数据类型详细解析
前端·javascript·vue.js
weixin_4624462313 小时前
Python用Flask后端解析Excel图表,Vue3+ECharts前端动态还原(附全套代码)
前端·python·flask·echats
满栀58513 小时前
jQuery 递归渲染多级树形菜单
前端·javascript·jquery
闲蛋小超人笑嘻嘻13 小时前
Flexbox 属性总结
前端·css
TOPGUS13 小时前
谷歌将移除部分搜索功能:面对AI时代的一次功能精简策略
前端·人工智能·搜索引擎·aigc·seo·数字营销
运筹vivo@13 小时前
攻防世界: ics-05
前端·web安全·php
不思念一个荒废的名字13 小时前
【黑马JavaWeb+AI知识梳理】Web前端开发 - Vue3 / ElementPlus
前端
月明长歌13 小时前
Selenium中隐式等待(Implicit Wait)和显式等待(Explicit Wait)的区别
前端·javascript·selenium
姜太小白13 小时前
【前端】JavaScript字符串执行方法总结
开发语言·前端·javascript