• 1. B/S架构体系安全渗透测试基础 质量保证部 朱晟
  • 2. 内容概要前言 当今世界,Internet(因特网)已经成为一个非常重要的基础平台,很多企业都将应用架设在该平台上,为客户提供更为方便、快捷的服务支持。这些应用在功能和性能上,都在不断的完善和提高,然而在非常重要的安全性上,却没有得到足够的重视。由于网络技术日趋成熟,黑客们也将注意力从以往对网络服务器的攻击逐步转移到了对 Web 应用的攻击上。根据最新调查,信息安全攻击有 75% 都是发生在 Web 应用而非网络层面上。同时,数据也显示,三分之二的 Web 站点都相当脆弱,易受攻击。 就公司以前WEB项目外部应用的现状:90%的网站都受到过类似SQL注入等黑客的攻击。
  • 3. 管理部分内容索引B/S架构常见安全问题
  • 4. B/S架构常见安全问题当讨论起 Web 应用安全,我们经常会听到这样的回答: “我们使用了防火墙”、“我们使用了网络脆弱扫描工具”、“我们使用了 SSL 技术”……所以,“我们的应用是安全的”。现实真是如此吗?让我们一起来看一下 Web 应用安全的全景图。
  • 5. 为何要进行安全测试但是,即便有防病毒保护、防火墙和SSL,企业仍然不得不允许一部分的通讯经过防火墙,毕竟 Web 应用的目的是为用户提供服务,保护措施可以关闭不必要暴露的端口,但是 Web 应用必须的 80 和 443 端口,是一定要开放的。可以顺利通过的这部分通讯,可能是善意的,也可能是恶意的,很难辨别。这里需要注意的是,Web 应用是由软件构成的,那么,它一定会包含缺陷(bugs),这些 bug 就可以被恶意的用户利用,他们通过执行各种恶意的操作,或者偷窃、或者操控、或者破坏 Web 应用中的重要信息。 只要访问可以顺利通过企业的防火墙,Web 应用就毫无保留的呈现在用户面前。只有加强 Web 应用自身的安全,才是真正的 Web 应用安全解决之道。
  • 6. 风险性较高的攻击方法“跨站点脚本攻击”和“注入缺陷攻击”,是目前 Web 应用中比例最高的两种攻击手段,还有如下八种风险性较高的攻击方法: Malicious File Execution(恶意文件执行); Insecure Direct Object Reference(不安全的直接对象引用); Cross-Site Request Forgery(跨站点的请求伪造); Information Leakage and Improper Error Handling(信息泄漏和不正确的错误处理); Broken Authentication & Session Management(损坏的认证和 Session 管理); Insecure Cryptographic Storage(不安全的密码存储); Insecure Communications(不安全的通信); Failure to Restrict URL Access(未能限制 URL 访问) 在这里,我简单介绍下这些缺陷
  • 7. 常见的 Web 应用攻击示例 1、 跨站点脚本攻击 (cross-site scrīpting,简称 XSS), 首先来看一下跨站点脚本的利用过程,如图 。
  • 8. 在上图中,恶意攻击者(这里使用 Evil.org 表示)通过 E-mail 或 HTTP 将某银行的网址链接发给用户(银行用 bank.com 表示),该链接中附加了恶意的脚本(上图步骤一); 用户访问发来的链接,进入银行网站,同时,嵌在链接中的脚本被用户的浏览器执行(上图步骤二、三); 用户在银行网站的所有操作,包括用户的 cookie 和 session 信息,都被脚本收集到,并且在用户毫不知情的情况下发送给恶意攻击者(上图步骤四); 恶意攻击者使用偷来的 session 信息,伪装成该用户,进入银行网站,进行非法活动(上图步骤五)。 因此,只要 Web 应用中,有可被恶意攻击者利用执行脚本的地方,都存在极大的安全隐患。黑客们如果可以让用户执行他们提供的脚本,就可以从用户正在浏览的域中偷到他的个人信息、可以完全修改用户看到的页面内容、跟踪用户在浏览器中的每一个动作,甚至利用用户浏览器的缺陷完全控制用户的机器。 目前,跨站点脚本攻击是最大的安全风险。
  • 9. 检查您的站点是否处于 XSS 攻击保护的方法 检查站点的安全也可以通过手工完成(硬方法),或利用自动的 Web 应用程序安全漏洞评估工具(如appscan),它减轻了检查的负担。该工具爬遍站点,然后根据尝试参数、头,和路径找到的所有脚本,运行其知道的所有变化。在这两种方法中,用尽可能多的方式检查对应用程序的每个输入(所有脚本的参数、HTTP 头、路径)。如果响应页面包含浏览器可以执行的 Javascrīpt 代码,那么 XSS 安全漏洞就已显露出来。 举例来说,首先,找到带有参数传递的URL,如登录页面,搜索页面,提交评论,发表留言页面等等。其次,在页面参数中输入如下语句(如:Javascrīpt,VB scrīpt, HTML, Flash)来进行测试: alert(document.cookie) 最后,当用户浏览时便会弹出一个警告框,内容显示的是浏览者当前的cookie串,这就说明该网站存在XSS漏洞。 试想如果我们注入的不是以上这个简单的测试代码,而是一段经常精心设计的恶意脚本,当用户浏览此帖时,cookie信息就可能成功的被攻击者获取。此时浏览者的帐号就很容易被攻击者掌控了。
  • 10. XSS攻击示例大名鼎鼎的淘宝网也存在这样的漏洞,我们在搜索框中输入: "/>