APP下载

谨防跨站脚本攻击,保障网站安全

2017-09-29徐洁洁

信息化建设 2017年8期
关键词:安全漏洞脚本攻击者

● 徐洁洁 /文

谨防跨站脚本攻击,保障网站安全

● 徐洁洁 /文

在2007年、2010年、2013年统计的十大Web安全漏洞中,XSS漏洞始终位于前三。

随着网络技术的发展及各行业数字化进程的不断推进,使得Web应用在各行业均得到了广泛的推广及应用,但是在Web应用给用户提供方便快捷服务的同时,不法分子针对Web应用相关安全漏洞的恶意攻击屡屡出现,因此对Web安全问题进行防范和检测显得非常重要。跨站脚本(Cross Site Scripting,简称XSS)是一种在Web应用程序中经常出现的安全漏洞,一般是由于Web应用程序对用户的输入过滤不足而产生的。世界上最知名的Web安全与数据库安全研究组织OWASP(Open Web Application Security Project)在 2007年、2010年、2013年统计过十大Web安全漏洞,XSS漏洞始终位于前三。

XSS漏洞及类型

XSS 的出现通常是由于Web应用程序对用户的输入过滤不足,从而使得攻击者可以利用网站的漏洞把恶意的脚本代码注入到客户端网页中,当用户浏览此网页时,脚本就会在用户的浏览器上执行,从而达到攻击者的目的。XSS根据用户输入数据以何种形式、何时触发XSS、是否有后端服务器的参与划分为三种类型:反射型XSS、持久型XSS和DOM XSS。

反射型XSS

反射型XSS(Reflected Cross Site Scripting)也被称为非持久型XSS,一般是攻击者构造一个包含恶意代码的URL,然后通过即时通信软件或电子邮件等方式将该URL发送给用户,诱使用户访问,当用户点击这些专门设计的链接时,恶意脚本就会在其本地浏览器中执行。由于这种攻击只在用户点击访问URL时触发一次,是非持久化的,所以称为反射型XSS。

图1给出了一个存在反射型XSS漏洞的代码片段,该程序采用PHP语言编写。假设访问地址为http://localhost/test.php,我们构造这样的url:http://localhost/test.php?key=,其效果相当于在文本框里 输 入:,然后点击提交。我们在地址栏输入该url,则会弹出如图2所示对话框,这就是由于没有对输入参数进行过滤而导致的XSS漏洞。

图1 反射型X S S案例代码

在反射型XSS中,由于恶意代码暴露在URL中,并且要求用户点击才可触发,而稍有安全意识的用户不会随意进行点击,所以反射型XSS的成功率会低一些,但攻击者也可以通过编码转换增加迷惑性,如前面的url我们可以通过编码转换为如下形式:http://localhost/test.php?key=%3Cscript%3Ealert%28%27xss%27%29%3C%2Fscript%3E。

持久型XSS

持久型XSS(persistent Cross Site Scripting)也被称为存储型XSS,一般出现在留言板、论坛等交互区,攻击者将恶意代码嵌入到提交的信息中,这些信息会被存储到服务器的数据库中,当用户浏览网页时,Web站点即从数据库汇总读取攻击者存入的非法数据,然后显示在页面上,这样在用户的浏览器中就会执行恶意代码。恶意代码存储到服务器后,所有浏览对应页面的用户都会遭受攻击,所以其危害性比反射型XSS更大。

图2 漏洞触发效果

图3 基于DOM的XSS案例代码

图4 页面分析

基于DOM的XSS

基于DOM的XSS是利用客户端脚本的漏洞来进行攻击,与前两类XSS攻击不同,这种类型的攻击不依赖于发送到服务端的恶意数据,而反射型、存储型都需要服务端的反馈来构造XSS。

图3给出了一个存在基于DOM的XSS漏洞的代码片段,该脚本从URL中提取“name=”后面的内容并显示在页面上,假定页面文件名为test.html,我们可以这样构造name参数:test.html?name=#">,这样在访问时就可以触发XSS。

XSS检测

XSS检测有静态分析和动态分析两类方法,静态分析需要获取程序的源代码,而通常我们无法获取到源代码,所以动态分析方法更为常用。动态分析的软件很多,在免费软件中ccXSScan是一个不错的反射型XSS检测工具。ccXSScan是Fiddler的插件,专门用于扫描和分析反射型XSS的。

用爬虫或手动访问一些网页后,点击step1下的分析按钮,可进行分析,查看页面中哪些内容可能被用户控制,如图4所示。

点击重放请求按钮对检查出来的结果进行重放尝试,最后点击step2选项卡,点击分析按钮,对重放的结果进行分析,如图5所示。

点击具体条目可以看到相应的漏洞信息,这里为保护网站对网址进行了处理。

XSS是最常见的计算机安全漏洞之一,即使如Google、Facebook等这样的知名网站,也曾遭受过XSS漏洞攻击,虽然XSS属于被动式攻击且不易利用,但其危害不容小视,利用它可以劫持浏览器用户会话、窃取客户端Cookie、进行网络钓鱼等。在淘宝、支付宝的钓鱼欺诈案件中,有很多是利用了XSS漏洞。而通过使用ccXSScan软件,我们可以非常方便地检测反射型XSS漏洞,该软件简单易用,并且不需要用户有非常专业的安全知识,因此可以帮助我们对反射型XSS攻击进行防范。

(作者单位:浙江省电子信息产品检验所)

图5 重放请求分析结果

猜你喜欢

安全漏洞脚本攻击者
酒驾
基于微分博弈的追逃问题最优策略设计
数据库系统shell脚本应用
安全漏洞太大亚马逊、沃尔玛和Target紧急下架这种玩具
正面迎接批判
快乐假期
基于安全漏洞扫描的校园网告警系统的开发与设计
有限次重复博弈下的网络攻击行为研究
安全漏洞Shellshock简介
NSFOCUS 2010年2月之十大安全漏洞