xss跨站脚本攻击

概述:

主要指攻击者可以再页面中插入恶意脚本代码,当受害者访问这些页面时,浏览器会解析并执行这些恶意代码,从而达到窃取用户身份、钓鱼、传播恶意代码和控制用户浏览器等行为

产生原因:

由于web程序对用户的输入过滤不足、,导致用户输入的恶意HTML/Javascript 代码注入到网页中,混淆原有语义,产生新的恶意语句。在其他用户访问网页时,浏览器就会触发恶意的网页代码,从而达到XSS攻击的目的

分类:

反射型:恶意代码并没有保存在目标网站,通过引诱用户点击一个链接到目标网站的恶意链接来实施攻击
输入:
xss跨站脚本攻击_第1张图片

输入语句被写入了html,我点击submit就会弹出用户的cookie

存储型:也叫持久性XSS,当一个玉面(如留言板)有存储型时,插入的的恶意XSS代码会存储到数据库中 ,当访问此页面查看留言时,web程序会从数据库中取出恶意代码插入到页面,导致浏览器触发XSS
xss跨站脚本攻击_第2张图片

构造这样的payload
xss跨站脚本攻击_第3张图片

,现在我们重新访问页面,还是会依次弹处hello和nihao,因为我们提交的语句已经被写入数据库中了

Dom型:通过修改页面的DOM节点形成的XSS,从效果上来说也是反射型。
反射型或存储型时服务器将提交的内容反馈到了html源码内,导致触发XSS。也就是说返回到html源码中可以看到触发xss的代码。DOM型XSS只与客户端上的js交互,也就是说提交的恶意代码,被放到了js中执行,然后显示出来
xss跨站脚本攻击_第4张图片
是因为js代码执行了我们输入的payload,而不是html

查找XSS漏洞探测

寻找web应用上的输入与输出口(例如网站输入框、URL参数等等),在可控参数中提交等攻击字符串,观察输出点是否对这些字符串进行转移、过滤、实体编码等处理。
xss跨站脚本攻击_第5张图片
这好像也是xss啊?但其实不是,我们右击选择编辑为html
在这里插入图片描述
发现他是经过url编码的,所以我们输入的payload被进行了编码再被放进html中,从而防止了xss的产生,所以并不会混淆语义。
但是显示在页面中的时候会进行url解码

常用探测向量

<script>alert(1)</script>
<img scr=x onerror=prompt(1);>
<audio scr=x onerror=prompt(1);>
<a href="http://www.google.com">Clickme</a>
<svg/onload=prompt(1);>

获得cookie

黑客在留言板中插入恶意代码
受害者访问被植入恶意代码的页面
恶意代码将cookir发送给黑客的服务器

一般使用xss平台生成payload,受害者执行之后cookie会被发送到xss平台

一般需要自行搭建xss平台
蓝莲花xss平台搭建教程

内网信息获取

https://github.com/BlackHole1/WebRtcXSS
该平台可以利用xss获取受害者的网络信息,扫描内网存在的漏洞并利用

BEEF(重要)

kali自带
beef利用简单的xss漏洞,通过一段编写好的js代码(hook.js)控制目标主机的浏览器,通过目标主机浏览器获得该主机的详细信息,并进一步扫描内网

XSS绕过

实际环境中,开发人员会对用户的输入进行相应的过滤,这时我们需要fuzz绕过

常见绕过:

大小写转换:<ScrIpt>AlerT("XSS");</SCRiPt>

闭合标签: ><script>alert("XSS");</script>

Hex编码: <scrIpt>alert("XSS");</script>转换为%3c%73%63%72%49%70%74%3e%61%6c%65%72%74%28%22%58%53%53%22%29%3b%3c%2f%73%63%72%69%70%74%3e

利用html属性 : 
<img src="javascript:alert("xss");">

空格/tab/回车:
<img src="java script:alert('xss);"width=100>

字符编码
%cl;alert(/xss/.);//

圆括号过滤
<a onmouseover="javascript:window.onerror=alert;throw 1>

;:被过滤
<svg><script>alert&#40/1/)

实体解码
&It:/script&gt;&lt;script&gt;alert(1)&It;/script&gt;

编码
使用十六进制、Unicode、HTML等进行编码

Alert被过滤
使用prompt和confirm替代

你可能感兴趣的:(xss,前端,web安全)