http://www.5alw.com- 我爱论文网

网站资讯通告:我爱论文网提供论文代写,发表论文,代写毕业论文,代写硕士论文,职称论文发表等论文相关服务。
搜索: 您现在的位置: 我爱论文网 >> 论文考试 >> 职称论文范文 >> 正文

基于SOAP的Web服务攻打及防备

作者:admin    论文来源:本站原创    点击数:    更新时间:2011-09-16


  SOAP(简略对象拜访协议)也已经成为W3C推举的尺度,SOAP的目标是使各种不同的组件实现远程通讯时就像在本地一样。

  1、SOAP通信
  SOAP是一种简单、轻巧的以XML为基本的协议,在Web上进行构造化、类型化数据的交流。SOAP的Envelope结构有两种:恳求和响应。

  要求Envelope包括了进行远程调用所需的信息。每个调用消息包括消息头和消息体。消息头存储消息路由,安全信息等内容,新闻体存储的是处理调用所需的信息。包括以下几个内容:

      调用的服务的名称
      服务的地位
      传给服务的参数名和数据

  响应Envelope返回结果数据。胜利返回的响应包括以下几个内容:

      调用的方法
      返回值的类型
      返回的数据

  2、SQL欺骗袭击SOAP Web 服务的实例

  SQL欺骗攻击是常常使用的攻击方法。

  个别Web Service把客户端传递的参数作为String来吸收,假如服务没有对字符串做严厉的输入检查,也就是说对输入参数进行验证或简化不保险的字符。那么,程序很容易就受到SQL欺骗攻击。比方,攻击者在参数中加入了一个单引号字符,程序在接受参数时如果不做检查,程序依据输入的参数生成了SQL查询语句,而单引号的呈现势必会引发不平安的返回值,这个服务就已经遭到了攻击。

  当然,Web服务的方法普通都指定了每个参数的数据类型。那么攻击者尝试在一个须要整型参数的Web方法长进行SQL参数欺骗就不会那么容易。在参数字符串中加入单引号将会导致SOAP履行后返回一个客户端毛病信息,进行欺骗的参数不会传给调用的方法。

  2.1攻击步骤1??了解Web Service的弱点

  SQL欺骗攻击的第一步是断定是否Web服务对输入参数是否进行验证和检查。下面是一个用C#编写的简单的基于SOAP的Web服务的例子。这个Web服求实现了一个简单的产品目录系统,包括产品信息、供给商信息和供应商所给的折扣。本例中我们使用的user ID 为551-457-4487,password 为123456。程序除了指定了每个参数的数据类型,还包括了每个参数的详细阐明。这个服务包括以下四个方法:
 
图1 Web服务中的四个方法

  服务将从数据库中查询出相干数据。

   首先我们要懂得有关服务器和参数的信息,实验1中我们将一些参数传给GetProductInformationByName方法,看看服务器对这些参数是如何响应的。同时我们晓得Name参数的数据类型为String,这是很轻易受到参数欺骗攻击的一种数据类型。

图2 实验1(在name参数中输入“’”以及服务器的响应)

  从上面服务器的响应可以看出,Web方法对ProductName参数没有进行最基础的参数检查。根据服务器返回的FaultString来看,Web服务存取的信息是存储在后盾数据库中的。对FaultString做细心分析,我们可以了解Web服务内部处置的进程以及问题出当初哪里。FaultString表现Web服务涌现了异样。如图2所示,在FaultString的最后多少行看到我们所调用的web方法是ProductInfo.ProductInfo.GetProductInformationByName(String name,String uid,String password)。内部调用ProductDBAcess.GetProductInformation(String productName,String uid,String password)用来与后台数据库通信。传入数据库中的SQL查询语句中有一个语法错误。System.Data.OleDb.OleDbException:语法错误(缺乏操作符)in query expression ‘productname like ‘‘’ and providerid=’551-457-4487’ ,这句话告诉我们内部的SQL查询使用了SQL语句的LIKE抒发式,运用程序根据我们给出的用来欺骗的单引号等参数生成终极的SQL查询语句。通过以上剖析,我们知道既然Web服务应用了Like表达式,那么我们用通配符%作为参数,来察看利用程序如何响应。我们想定的结果是程序将返回至少一个产品记录。
 
图3 实验2(在参数中输入“%”及服务器响应)

    从图3可以看出,正如我们所想定的,服务器返回了一条产品记载。但我们发明,服务器只返回了一条记载而不是全体的记录。逻辑上来说,输入通配符%,内部查询应该返回所有的产品记录。然而,我们定义的GetProductInformationByName办法,返回参数的类型是String而不是ArrayOfString论文代写。这是SOAP协定进行强迫的类型和输入输出编码检查的一个方面。

  通过实验1和实验2,我们可以得到论断??SQL的Like表达式可以返回一些我们本不能得到的信息。Web服务本应该确认用户身份,而且在技术上来说,不能显示与参数Providerid无关的产品信息。我们要进行Web服务的欺骗,我们就要想措施利用现有的用户认证得到更多的产品信息。分析GetProductInformationByName方法用户认证的执行过程,实验3中我们仍是利用实验1中对name参数采取的方法,将单引号插入uid参数,看看是否会影响用户认证SQL表达式。
 
图4 实验3(在用户id参数中加入“’”及服务器返回的结果)

    在这个试验的想定中,服务器返回的FaultSstring告知咱们程序是如何应用uid跟password进行用户认证的。它将认证信息传给ProductInfo.ProductDBAccess.VerifyAuthentication(String uid,String Password)方式。我们在uid参数中参加的单引号直接造成了语法过错,能够看出程序并不进行词法检讨。通过从服务器返回的查问表白式的局部代写毕业论文,我们能生成一个SQL诈骗过口令验证。天生的SQL应当是相似于Select something from sometable where userid=’551-457-4487’ and password=’’or 1=1 or password=’’,这样的参数就能骗过服务器的身份验证。

2.2 攻打步骤2??进行SQL诱骗

图5 实验4(输入SQL欺骗参数及服务器返回的结果)

  从服务器返回的成果,我们做的SQL欺骗取得了服务器的信赖。我们没有输入认证密码就得到了产品数据。

  同样的情理,我们将’or’’=’作为用户的uid, ‘or providerid=’787-457-1154 作为providerid进行SQL欺骗。787-457-1154是我们当时知道的用户id。那么生成的SQL语句是:select something from sometable where uid=’’ or’’=’’ and password=’’ or providerid=’787-457-1154’。服务将接收我们的SQL,返回我们想
窃取的用户信息。  
图6 实验5(用户名及口令欺骗及服务器返回的结果)

  3、 防范Web服务攻击

  维护Web服务不被攻击需要开发职员、体系管理员和治理人员的合作。黑客们会一直地转变他们的攻击方法,所以我们需要一个完美的安全的Web应用。

  防备Web服务攻击最有效的方法就是进行输入参数与返回结果的验证和检查。在参数传给服务器之前,任何可能引起不安全因素的字符或字符串都要进行处理。去除引号,反斜线等等还不足够,最好的方法是指定一种谢绝错误的规矩来过滤掉不安全的数据,包含语法和逻辑检查等等。

  应用程序同样要对返回给用户的数据进行确认。同样包括SOAP中的类型检查,逻辑检查以及确保返回的对象中包含的数据没有不安全的货色。另外,程序还要确保格局的有效性,使用同一的错误报告而不是默认的错误讲演,默认的错误呈文通常会告诉用户太多的信息。

  4、停止语

  跟着Web Services的越来越风行,Web Service的安全性也越来越主要。分析可能发生攻击和欺骗的手腕,能更好地使我们及时采用办法来避免此类恶性攻击和欺骗所带来的重大成果。

  作者 :

  侯悦 毛俊
  1(空军工程大学电讯工程学院  西安 710077)
  2(解放军报社技巧设备部 北京 100832)
“基于SOAP的Web服务攻打及防备”版权归作者所有,转载请著名出处。  
Tags:全部  
责任编辑:admin
  • 上一篇论文:
  • 下一篇论文: 没有了
  • 联系方式

    我爱论文网提供各类毕业论文代写,职称论文发表等相关论文服务,如有需要请联系下面两位客服:
    客服李老师:QQ:68318323我爱论文网
    电话:15398090322
    邮箱:68318323@qq.com
    客服张老师:QQ:82190052我爱论文网
    电话:15398083022
    邮箱:82190052@qq.com
    • 此栏目下没有推荐论文
    • 此栏目下没有热点论文
    设为首页 | 加入收藏 | 友情链接 | 版权申明 | 网站地图