毕业论文 | 免费论文 | witkeycity.com免费论文网
用心做到最好,您的支持是我们最大的动力!
网站地图
合作联系
收藏本站

首 页 经济学论文 财政税收 证券金融 管理学论文 会计审计 工商管理 财务管理 公共管理 法学论文 理学论文 医药学论文
政治论文 社会学论文 文学论文 教育类论文 工学论文 计算机论文 艺术类论文 哲学论文 文化论文 英语论文 应用文 论文写作指导

   
 ·推荐文章
·毕业论文写作的基本要求
·计算机软件许可证协议书
·高三班主任工作总结
·入党思想汇报 1
·如何把简历设计成你的个人广告 
·简历策划:让面试官对你一见钟情
·企业管理软件的“渐进式实施方法
·中小企业人力资源规划困惑与解决
·电子商务对国际贸易的影响与中国
 ·书籍推荐
 ·广告推荐
   当前位置:首页 > 计算机论文 > 计算机应用 > 正文
基于SOAP的Web服务攻击及防范
来源:  [ 2006-9-11 8:47:35 ]  作者:   编辑:
收藏到VIVI | 收藏到365KEY | 收藏到YOUNOTE | 收藏到博采| 收藏到天极网摘 | 收藏到和讯网摘

  摘要:该文讨论了基于SOAP协议的Web服务攻击的方法,进行了攻击的实验,并针对实验结果提出了防止攻击的措施。
关键词:SOAP Web Service SQL欺骗攻击

Web Services的广泛应用使当今互联网上应用程序之间的通信日益增加。Web Service已经成为各大公司进行电子商务革命的理想选择。
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表达式,那么我们用通配符%作为参数,来观察应用程序如何响应。我们想定的结果是程序将返回至少一个产品记录。

本新闻共2页,当前在第1页  1  2  

 
上篇文章: 基于GIS三维可视化仿真技术的虚拟战场地形研究  下篇文章: 基于WWW的协同式CAI软件的Java实现
网站首页 - 友情链接 - 网站地图 - 加入收藏

声明:免费毕业论文网资料来源于网络,如有侵犯您的权益,请立即告知,我们将删除!
联系方式: E-mail:Laozhanga@QQ.COM QQ:75931341
同时按下键盘 CTRL+D 会有惊喜发生哦!
冀ICP备07000828号