跨站脚本Cross-site scripting

2017-12-08 0 By admin

为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。

XSS是一种在web应用中的计算机安全漏洞,它是恶意web用户将代码植入到提供给其它用户使用的页面中。

XSS攻击分成两类

1、来自内部的攻击,主要指的是利用程序自身的漏洞,构造跨站语句,如:dvbbs的showerror.asp存在的跨站漏洞。

2、来自外部的攻击,主要指的自己构造XSS跨站漏洞网页或者寻找非目标机以外的有跨站漏洞的网页。
如当我们要渗透一个站点,我们自己构造一个有跨站漏洞的网页,然后构造跨站语句,通过结合其它技术,如社会工程学等,欺骗目标服务器的管理员打开

存储型和反射型

存储型XSS:持久化存储在一个位置。如利用站点的输入接口,将代码提交到服务器上;如果站点对输入数据过滤不够严格,就会造成代码注入。用户访问改页面的时候就会触发代码执行。
这种XSS比较危险,容易造成蠕虫,盗窃cookie(虽然还有种DOM型XSS,但是也还是包括在存储型XSS内)。

反射型XSS:非持久化,需要欺骗用户自己去点击链接才能触发XSS代码,一般容易出现在搜索页面。

注入脚本例子

1、><script>alert(document.cookie)</script>
2、='><script>alert(document.cookie)</script>
3、"><script>alert(document.cookie)</script>
4、<script>alert(document.cookie)</script>
5、<script>alert (vulnerable)</script>
6、%3Cscript%3Ealert('XSS')%3C/script%3E
7、<script>alert('XSS')</script>
8、<img src="javascript:alert('XSS')">
9、<img src="http://xxx.com/yyy.png" onerror="alert('XSS')">
10、<div style="height:expression(alert('XSS'),1)"></div>(这个仅限IE有效)

攻击手段和目的
攻击者使被攻击者在浏览器中执行脚本后,如果需要收集来自被攻击者的数据(如cookie或其他敏感信息),可以自行架设一个网站,让被攻击者通过JavaScript等方式把收集好的数据作为参数提交,随后以数据库等形式记录在攻击者自己的服务器上。

常用的XSS攻击手段和目的有:
1、盗用cookie,获取敏感信息。
2、利用植入Flash,通过crossdomain权限设置进一步获取更高权限;或者利用Java等得到类似的操作。
3、利用iframe、frame、XMLHttpRequest或上述Flash等方式,以(被攻击)用户的身份执行一些管理动作,或执行一些一般的如发微博、加好友、发私信等操作。
4、利用可被攻击的域受到其他域信任的特点,以受信任来源的身份请求一些平时不允许的操作,如进行不当的投票活动。
5、在访问量极大的一些页面上的XSS可以攻击一些小型网站,实现DDoS攻击的效果。