WEB中间件——axis2+tomcat的个人理解

前言: 借着朋克实验室的某个靶机,系统的学习一下axis中的SOAP及WSDL和Tomcat。

  • SOAP:Simple Object Access Protocol
  • WSDL:Web Services Description Language
wsdl文档部分(仅供参考):
definition of types........ 数据类型定义的容器,它使用某种类型系统(一般地使用XML Schema中的类型系统) definition of a message.... 通信消息的数据结构的抽象类型化定义。使用Types所定义的类型来定义整个消息的数据结构。 definition of a port....... 对于某个访问入口点类型所支持的操作的抽象集合,这些操作可以由一个或多个服务访问点来支持。 definition of a binding.... 特定端口类型的具体协议和数据格式规范的绑定。 相关服务访问点的集合。

WSDL说白了其实就是将webSevice打包后deploy,工程里面的某个类的某个方法可以不用实例化,通过某种映射关系将方法映射到WSDL中,通过URL即可传递参数并调用方法,其实就是一个接口。一般AXIS需部署jar或aar包,tomcat部署war包。
Pentester Lab Axis2 Web service and Tomcat Manager 此靶机有AXIS2的webService及Tomcat服务,下面分别在axis2服务与tomcat管理后台上分别部署服务拿到权限。
tomcat部署war包: 发现tomcat管理页面:
WEB中间件——axis2+tomcat的个人理解
文章图片

使用metasploit进行爆破未果,如果能读取到tomcat-users.xml文件就能得到用户名与密码了。访问axis服务,发现有ProxyService服务:
WEB中间件——axis2+tomcat的个人理解
文章图片

此service有敏感信息泄露漏洞,查看此服务接口文档:
WEB中间件——axis2+tomcat的个人理解
文章图片

发现此服务接口方法名为get,参数为uri,返回类型为string类型。使用此接口读取tomcat配置文件/etc/tomcat6/tomcat-users.xml。
WEB中间件——axis2+tomcat的个人理解
文章图片

登录Tomcat管理后台:
WEB中间件——axis2+tomcat的个人理解
文章图片

上传war包后查看application发现部署的test应用:
WEB中间件——axis2+tomcat的个人理解
文章图片

注:从上面可以看到axis2也是Tomcat的一个webService,也是部署后的应用。
WEB中间件——axis2+tomcat的个人理解
文章图片

可以看到我们部署的test应用中的shell.jsp解析,获得webshell:
WEB中间件——axis2+tomcat的个人理解
文章图片


axis2部署aar服务:axis2服务的几个特殊路径:URL/axis2/URL/axis2/axis2-admin/URL/axis2/services/默认凭证:admin/axis2
使用默认用户名密码登录:
WEB中间件——axis2+tomcat的个人理解
文章图片

在部署接口服务处上传aar包,包含各种类及方法作为接口。此处上传编写好的接口。
WEB中间件——axis2+tomcat的个人理解
文章图片

可以看到上传成功, 点击查看可用的接口服务:
WEB中间件——axis2+tomcat的个人理解
文章图片

可以看到可用的Cat接口及其内部的方法名。进一步查看Cat接口的接口说明文档或者是映射文档wsdl,以exec命令执行接口为例:
WEB中间件——axis2+tomcat的个人理解
文章图片

可以看到此接口名为exec,参数为字符串型的cmd,返回类型为字符串类型,直接在URL中利用映射关系调用接口即可,请求接口方式如下:
WEB中间件——axis2+tomcat的个人理解
文章图片

【WEB中间件——axis2+tomcat的个人理解】可以选择反弹shell等后续操作。。。
总结:
  • axis2是Tomcat的一个webService,是一个application而已,是在webapp部署后的。
  • Tomcat管理后台用户名密码在/conf/tomcat-users.xml文件中,登陆后可部署war包。
  • axis2管理后台可部署aar包,其实axis2就是部署在Tomcat中的一个无须实例化即可随时运行类中方法的、管理接口的应用。可部署接口,可调用接口,而调用的接口是提前写好的service打包成aar或jar后通过axis2上传的。
  • axis2特殊路径:URL/axis2/URL/axis2/axis2-admin/URL/axis2/services//conf/axis2.xml(密码) URL/axis2/services/listServices(此请求返回无需登录情况下的,axis2应用的所有接口名及方法,可以直接?wsdl查看接口文档,一般可以当作盲测。)
  • 打包war包:jar -cvf xxx.war *解包:jar -xvf xxx.war

    推荐阅读