[精选]BS架构体系安全渗透测试基础kce.pptx
《[精选]BS架构体系安全渗透测试基础kce.pptx》由会员分享,可在线阅读,更多相关《[精选]BS架构体系安全渗透测试基础kce.pptx(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、B/S架构体系安全渗透测试基础质量保证部朱晟索迪教育索迪教育 ITIT成就人生成就人生内容概要前言当今世界,Internet(因特网)已经成为一个非常重要的基础平台,很多企业都将应用架设在该平台上,为客户提供更为方便、快捷的服务支持。这些应用在功能和性能上,都在不断的完善和提高,然而在非常重要的安全性上,却没有得到足够的重视。由于网络技术日趋成熟,黑客们也将注意力从以往对网络服务器的攻击逐步转移到了对Web应用的攻击上。根据最新调查,信息安全攻击有75%都是发生在Web应用而非网络层面上。同时,数据也显示,三分之二的Web站点都相当脆弱,易受攻击。就公司以前WEB项目外部应用的现状:90%的网
2、站都受到过类似SQL注入等黑客的攻击。索迪教育索迪教育 ITIT成就人生成就人生管理部分内容索引B/S架构常见安全问题索迪教育索迪教育 ITIT成就人生成就人生B/S架构常见安全问题当讨论起Web应用安全,我们经常会听到这样的回答:“我们使用了防火墙”、“我们使用了网络脆弱扫描工具”、“我们使用了SSL技术”所以,“我们的应用是安全的”。现实真是如此吗?让我们一起来看一下Web应用安全的全景图。索迪教育索迪教育 ITIT成就人生成就人生为何要进行安全测试但是,即便有防病毒保护、防火墙和SSL,企业仍然不得不允许一部分的通讯经过防火墙,毕竟Web应用的目的是为用户提供服务,保护措施可以关闭不必要
3、暴露的端口,但是Web应用必须的80和443端口,是一定要开放的。可以顺利通过的这部分通讯,可能是善意的,也可能是恶意的,很难辨别。这里需要注意的是,Web应用是由软件构成的,那么,它一定会包含缺陷(bugs),这些bug就可以被恶意的用户利用,他们通过执行各种恶意的操作,或者偷窃、或者操控、或者破坏Web应用中的重要信息。只要访问可以顺利通过企业的防火墙,Web应用就毫无保留的呈现在用户面前。只有加强Web应用自身的安全,才是真正的Web应用安全解决之道。索迪教育索迪教育 ITIT成就人生成就人生风险性较高的攻击方法“跨站点脚本攻击”和“注入缺陷攻击”,是目前Web应用中比例最高的两种攻击手
4、段,还有如下八种风险性较高的攻击方法:MaliciousFileExecution(恶意文件执行);InsecureDirectObjectReference(不安全的直接对象引用);Cross-SiteRequestForgery(跨站点的请求伪造);InformationLeakageandImproperErrorHandling(信息泄漏和不正确的错误处理);BrokenAuthentication&SessionManagement(损坏的认证和Session管理);InsecureCryptographicStorage(不安全的密码存储);InsecureCommunicatio
5、ns(不安全的通信);FailuretoRestrictURLAccess(未能限制URL访问)在这里,我简单介绍下这些缺陷索迪教育索迪教育 ITIT成就人生成就人生常见的Web应用攻击示例1、跨站点脚本攻击(cross-sitescrpting,简称XSS),首先来看一下跨站点脚本的利用过程,如图。索迪教育索迪教育 ITIT成就人生成就人生在上图中,恶意攻击者(这里使用Evil.org表示)通过E-mail或HTTP将某银行的网址链接发给用户(银行用表示),该链接中附加了恶意的脚本(上图步骤一);用户访问发来的链接,进入银行网站,同时,嵌在链接中的脚本被用户的浏览器执行(上图步骤二、三);用
6、户在银行网站的所有操作,包括用户的cookie和session信息,都被脚本收集到,并且在用户毫不知情的情况下发送给恶意攻击者(上图步骤四);恶意攻击者使用偷来的session信息,伪装成该用户,进入银行网站,进行非法活动(上图步骤五)。因此,只要Web应用中,有可被恶意攻击者利用执行脚本的地方,都存在极大的安全隐患。黑客们如果可以让用户执行他们提供的脚本,就可以从用户正在浏览的域中偷到他的个人信息、可以完全修改用户看到的页面内容、跟踪用户在浏览器中的每一个动作,甚至利用用户浏览器的缺陷完全控制用户的机器。目前,跨站点脚本攻击是最大的安全风险。索迪教育索迪教育 ITIT成就人生成就人生检查您的
7、站点是否处于XSS攻击保护的方法检查站点的确安全也可以通过手工完成(硬方法),或利用自动的Web应用程序安全漏洞评估工具(如appscan),它减轻了检查的负担。该工具爬遍站点,然后根据尝试参数、头,和路径找到的所有脚本,运行其知道的所有变化。在这两种方法中,用尽可能多的方式检查对应用程序的每个输入(所有脚本的参数、HTTP头、路径)。如果响应页面包含浏览器可以执行的Javascrpt代码,那么XSS安全漏洞就已显露出来。举例来说,首先,找到带有参数传递的URL,如登录页面,搜索页面,提交评论,发表留言页面等等。其次,在页面参数中输入如下语句(如:Javascrpt,VBscrpt,HTML,
8、Flash)来进行测试:alert(document.cookie)最后,当用户浏览时便会弹出一个警告框,内容显示的是浏览者当前的cookie串,这就说明该网站存在XSS漏洞。试想如果我们注入的不是以上这个简单的测试代码,而是一段经常精心设计的恶意脚本,当用户浏览此帖时,cookie信息就可能成功的被攻击者获取。此时浏览者的帐号就很容易被攻击者掌控了。索迪教育索迪教育 ITIT成就人生成就人生XSS攻击示例索迪教育索迪教育 ITIT成就人生成就人生如何预防XSS漏洞从应用程序的角度来讲,要进行以下几项预防:1.对Javascrpt,VBscrpt,HTML,Flash等语句或脚本进行转义.2.
9、在服务端正式处理之前提交数据的合法性(合法性检查主要包括三项:数据类型,数据长度,敏感字符的校验)进行检查等。最根本的解决手段,在确认客户端的输入合法之前,服务端拒绝进行关键性的处理操作.从测试人员的角度来讲,要从需求检查和执行测试过程两个阶段来完成XSS检查:1.在需求检查过程中对各输入项或输出项进行类型、长度以及取值范围进行验证,着重验证是否对HTML或脚本代码进行了转义。2.执行测试过程中也应对上述项进行检查。索迪教育索迪教育 ITIT成就人生成就人生注入缺陷2、注入缺陷目前的Web应用中,绝大多数都会向用户提供一个接口,用来进行权限验证、搜索、查询信息等功能。比如一个在线银行,首先会有
10、对注册客户进行身份验证的登录界面,在正确登录后,会提供更多交互功能,如根据客户的银行卡号信息,查询客户的最近交易、转账细节等。这些都是注入缺陷的最佳利用场景。所谓注入缺陷,就是在上述场景中,用户输入的数据被当做命令和查询的一部分,送到后端的解释器中解释执行。如果用户的输入是正常合法的,Web应用自然会返回正常合理的结果,但是,如果恶意攻击者,利用输入数据可被后台执行的原理,偷梁换柱,使用非法的输入,脆弱的Web应用会怎样呢?下面举一个例子来说明注入缺陷是如何进行的。在一个交易网站中,用户必须输入产品ID号才可以查看该产品的详细信息。为了实现这个需求,通常会用SQL语句查询数据库来实现。开发人员
11、在编写应用程序时,可能会使用如下的SQL语句来实现上述目的(这里仅为示例):索迪教育索迪教育 ITIT成就人生成就人生1)Select*fromproductswhereproduct_id=+用户输入的ID+这里的products是数据库中用来存放产品信息的表,号表示SQL语句需要和用户输入的真实ID进行拼接。如果用户输入325,则该语句在执行时变为:Select*fromproductswhereproduct_id=325数据库会将ID为325的产品信息返回给用户。2)在界面上,需要用户输入产品ID的地方,黑客会输入如下数据:or1=1可以看到,黑客并没有输入正常合法的产品编号。3)通过
12、黑客的非法输入,需要执行的SQL语句变为:Select*fromproductswhereproduct_id=or1=1可以看出,SQL语句的意义就完全改变了,当产品ID为空或者11时,返回产品所有信息,而11是永远成立的条件,因此,黑客并没有输入任何产品编号,就可以返回数据库中所有产品的详细信息。通过这个例子,我们可以看出,注入缺陷是风险非常高的安全漏洞,一旦Web应用中给用户提供了需要其输入数据的接口,就有可能遭到攻击,将后台的数据完全暴露在用户的面前。索迪教育索迪教育 ITIT成就人生成就人生如何预防SQL注入从应用程序的角度来讲,我们要做以下三项工作:1.转义敏感字符及字符串(SQL
13、的敏感字符包括“exec”,”xp_”,”sp_”,”declare”,”Union”,”cmd”,”+”,”/”,”.”,”;”,”,”-”,”%”,”0 x”,”=!-*/()|”,和”空格”).2.屏蔽出错信息:阻止攻击者知道攻击的结果3.在服务端正式处理之前提交数据的合法性(合法性检查主要包括三项:数据类型,数据长度,敏感字符的校验)进行检查等。最根本的解决手段,在确认客户端的输入合法之前,服务端拒绝进行关键性的处理操作.从测试人员的角度来讲,在程序开发前(即需求阶段),我们就应该有意识的将安全性检查应用到需求评审中,例如对一个表单需求进行检查时,我们一般检验以下几项安全性问题:1.需
14、求中应说明表单中某一FIELD的类型,长度,以及取值范围(主要作用就是禁止输入敏感字符)2.需求中应说明如果超出表单规定的类型,长度,以及取值范围的,应用程序应给出不包含任何代码或数据库信息的错误提示.当然在执行测试的过程中,我们也需求对上述两项内容进行测试.索迪教育索迪教育 ITIT成就人生成就人生信息泄漏和不正确的错误处理此漏洞利用的重点在于应用程序未能正确处理自身发生的错误此漏洞利用的重点在于应用程序未能正确处理自身发生的错误,技术重点在于某些应,技术重点在于某些应用程序出错时,会把错误信息反馈到用户端,这些错误信息通常可用于调试的目的用程序出错时,会把错误信息反馈到用户端,这些错误信息
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精选 BS 架构 体系 安全 渗透 测试 基础 kce
限制150内