0x00 前言
补充Web Service及SOAP类型的资料。
0x01 Web Service基础
Web Service简介
Web Service是一个平台独立、低耦合、自包含的、基于可编程Web的应用程序,使用开放的XML标准进行描述、发布、发现、协调和配置。其目的是实现分布式交互操作的应用程序。
Web Service技术
Web Service能使不同机器上的不同应用在无需专门第三方软件或硬件的情况下,相互交换数据或集成。它自描述、自包含,可通过网络调用其他网站资源,基于产业标准如XML、HTTP。
Web Service基本原理
通过HTTP协议发送请求和接收结果,使用SOAP协议规定的XML格式封装数据,实施服务端通过WSDL文件说明可调用服务。交互过程是遵循SOAP协议通过XML封装数据,再通过HTTP协议传输。
Web Service分类
一般分为SOAP型和REST型:
- SOAP型:使用XML格式与服务器通信;
- REST型:使用JSON格式(或XML格式)与服务器通信,支持GET、POST、PUT、DELETE方法,无需WSDL、UDDI。
Web Service三要素
包括SOAP(Simple Object Access Protocol)、WSDL(Web Services Description Language)、UDDI(Universal Description Discovery and Integration)。
0x02 编写Web Service程序
Java版
编写接口类ICalculator
,使用@WebService
修饰接口。实现类CalculatorImpl
中通过@WebService
指定端点接口和服务名。服务端通过Endpoint.publish()
发布Web Service服务。
PHP版
参考:GitHub – snoopysecurity/dvws: Damn Vulnerable Web Services is an insecure web application with multiple vulnerable web service components that can be used to learn real world web service vulnerabilities. NOTE: This project is out of date, please use https://github.com/snoopysecurity/dvws-node
NodeJS版
参考:GitHub – snoopysecurity/dvws-node: Damn Vulnerable Web Services is a vulnerable application with a web service and an API that can be used to learn about webservices/API related vulnerabilities.
.Net版
参考:浅析接口安全之WebService – 先知社区 (aliyun.com)
0x03 搜索Web Service服务
Google Hack
使用Google Hack技巧搜索Web Service服务,如:
filetype:asmx inurl:(_vti_bin | api | webservice | ws)
allinurl:dll?wsdl filetype:dll
通过代理流量筛选
利用代理工具(如BurpSuite)的过滤规则,如.dll?wsdl
、.ashx?wsdl
、.exe?wsdl
等。
Fuzzing
使用工具进行Fuzzing,探测Web Service服务的漏洞。
0x04 针对Web Service的渗透测试
使用安全工具辅助进行渗透测试,包括:
- WebScarap
- SoapUI
- WCFStorm
- SOA Cleaner
- WSDigger
- wsScanner
- Wfuzz
- RESTClient
- BurpSuite
- WS-Attacker
- ZAP
- Metasploit
- WSDL Analyze
0x05 Web Service漏洞案例
XSS
在SOAP请求中,XSS payload的尖括号要进行HTML编码,以避免解析错误。可触发XML XSS,例如利用xhtml。
XXE
利用XML External Entity漏洞,通过合适的exp触发漏洞。
任意用户枚举
利用API逻辑漏洞,通过响应结果二元组推断用户信息。
原型链污染攻击
利用express-fileupload < 1.1.10版本的原型链污染漏洞,可导致DoS或任意代码执行。
DoS
利用Web Service服务的XML解析器漏洞,进行元素属性、元素名称或元素个数的DoS攻击。
其他漏洞
Web Service服务可能存在其他漏洞,如命令注入、SQL注入、逻辑漏洞、信息泄露等,具体取决于服务端代码实现。
以上是Web Service渗透测试的基本概述及实例,涵盖了基础知识、编写程序、搜索服务、渗透测试和漏洞案例等方面。
暂无评论内容