pikachu--(htmlspecialchars、href和js输出)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了pikachu--(htmlspecialchars、href和js输出),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1231字,纯文字阅读大概需要2分钟。
内容图文
XSS-htmlspecialchars
htmlspecialchars()函数把预定义的字符转换为html实体
预定义的字符: 预防: 可用的引号类型:(一般使用这个函数时候要指定类型)
&转换为& ENT_COMPAT 默认,仅编码双引号
“转换为" ENT_QUOTES 编码双引号和单引号(xss漏洞是因为指定类型时候的疏忽)
‘转换为' ENT_NOQUOTES 不编码任何引号
<转换为<
>转换为>
下面采用xss漏洞的测试方法进行操作,可以参考我之前博客https://www.cnblogs.com/7-58/p/12317111.html
输入带有特殊字符的和唯一标识符 ‘"<>666
查看网页源代码
发现只有单引号没有被转换
我们构造 a‘ onclick=‘alert(123)‘ 成功弹框
可以看一眼,pikachu源码 使用函数,默认不对类型进行处理(没有指定类型)
Xss- href输出
这里href里面如果做输出的话,应该怎么处理?
在输入时候只允许是http,https协议的才允许在这输出,否则的话就不允许输入。之后再进行htmlspecialchars函数过滤。
先看一下pikachu的源码 这次利用函数,设置了类型 ENT_QUOTES对单引号、双引号、尖括号等过滤
构造 因为对那些符号进行了过滤,输入 javascript:alert(111)
Xss-js输出
这里讲输入动态的生成到了js中,形成xss
javascript里面是不会对tag和字符实体进行解释的,所以需要进行js转义
讲这个例子主要是为了明白,输出点在js中的xss问题,应该怎么修?
这里如果进行html的实体编码,虽然可以解决XSS的问题,但是实体编码后的内容,在JS里面不会进行翻译,这样会导致前端的功能无法使用。
所以在JS的输出点应该使用\(反斜杠)对特殊字符进行转义
查看网页源代码 发现是把对应的输入放在了js里面,进行判断,在进行相应的输出
我们把这段拿出来
<script>
$ms=‘123‘;
if($ms.length != 0){
。。。。。。
</script>
将前面<script>$ms=‘123‘;构造闭合
<script>$ms=‘123’</script><script>alert(‘xss’)</script>‘;
’</script><script>alert(‘xss’)</script>
弹框
原文:https://www.cnblogs.com/7-58/p/12331632.html
内容总结
以上是互联网集市为您收集整理的pikachu--(htmlspecialchars、href和js输出)全部内容,希望文章能够帮你解决pikachu--(htmlspecialchars、href和js输出)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。