pikachu--(htmlspecialchars、href和js输出)

XSS-htmlspecialchars

htmlspecialchars()函数把预定义的字符转换为html实体

预定义的字符:       预防: 可用的引号类型:(一般使用这个函数时候要指定类型)

&转换为&amp                 ENT_COMPAT 默认,仅编码双引号

转换为&quot               ENT_QUOTES 编码双引号和单引号(xss漏洞是因为指定类型时候的疏忽)

转换为&#039               ENT_NOQUOTES 不编码任何引号

<转换为&lt       

>转换为&gt

下面采用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

时间: 2024-10-13 16:54:52

pikachu--(htmlspecialchars、href和js输出)的相关文章

创建Vue.js对象:我的第一个Vue.js输出信息

<!DOCTYPE html><html><head><meta charset=”utf-8″><title>Vue第一条信息</title><script src=”js/vue.js”></script></head><body><div id=”app”><p>{{ message }}</p></div> <script&g

a标签href调用js方法的问题

<!--<a href="javascript:secondThreadReply(this,1)" onclick="javascript:secondThreadReply(this,1);">回复</a>--> function secondThreadReply(this,1){ alert(obj); } 通过href调用js方法,如果传递参数this,js里获取到的并不是a标签对象,而是[object window]对

解决js输出汉字乱码的问题

最近做安卓开发,安卓客户端调用服务器页面,但是服务器编码为gbk,安卓编码为utf-8,导致js输出内容报错,前期的做法是调整js文件编码,但是会生成两个版本,很不方便,最后找到对汉字进行转码的形式进行解决.其中js对汉字转吗的函数有encodeURI.encodeURIComponent.escape.下面做一下简单介绍. 1.encodeURI和decodeURI [1]语法:encodeURI(string).decodeURI(string) [2]说明:decodeURI() 函数可对

解决js输出汉字乱码问题

当我们需要使用js输出汉字时,偶然会出现输出的中文汉字乱码的情况,在网上收了很多解决方案 1.在mata中加 <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> 2.引入js时制定编码 <script type="text/javascript" src="jquery.min.js" charset="utf-8

JS href执行JS事件

参考地址 https://blog.csdn.net/zhangshuang92/article/details/54407229/ href执行JS https://blog.csdn.net/bingguang1993/article/details/82747448 异常报错 JS代码如下: <a href = "javascript:js_method()">文本</a> //不推荐,但是实在是好用,具体原因在参考地址查看 <a href =&qu

JS 输出与变量

1. JS的输出 innerHTML: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> <h1>我的第一个 Web 页面</h1> <p id="demo">我的第一个段落</p> <script> document.getElementById(&

利用js输出ul下li的index索引值

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>打印索引</title> </head> <style type="text/css"> li{background: pink;margin-bottom: 10px;height: 40px;} </style> <body>

JS 和 a href className JS编写顺序与运行顺序 字符串或变量嵌入中括号 代替 点号

JS 和 a href 在href里面注意分号结尾, 引号闭合 <a href="javascript:;">空链接</a> <a href="javascript:alert('a');">弹出</a> 一般不妨代码, 一般让它空着. 空着也可以用井号'#', 但不是很好. className <style> #div1 {width:100px; height:100px; border:1px sol

[转]html里a标签中href调用js的几种方法

文章转自:https://blog.csdn.net/best_luxi/article/details/45062301 我们常用的在a标签中有点击事件: 1. a href=”javascript:js_method();” 这是我们平台上常用的方法,但是这种方法在传递this等参数的时候很容易出问题,而且javascript:协议作为a的href属性的时候不仅会导致不必要的触发window.onbeforeunload事件,在IE里面更会使gif动画图片停止播放.W3C标准不推荐在href