WEB中间件——axis2+tomcat的个人理解
前言: 借着朋克实验室的某个靶机,系统的学习一下axis中的SOAP及WSDL和Tomcat。
- SOAP:Simple Object Access Protocol
- WSDL:Web Services Description Language
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的个人理解](https://img.it610.com/image/info8/4843b70c8a6648e39fdf38fc21100b29.jpg)
文章图片
使用metasploit进行爆破未果,如果能读取到tomcat-users.xml文件就能得到用户名与密码了。访问axis服务,发现有ProxyService服务:
![WEB中间件——axis2+tomcat的个人理解](https://img.it610.com/image/info8/6ad86976af514d86b300f3ce4c36c0f4.jpg)
文章图片
此service有敏感信息泄露漏洞,查看此服务接口文档:
![WEB中间件——axis2+tomcat的个人理解](https://img.it610.com/image/info8/e6c0a1e43724473d8123a1f3ee6fa8ab.jpg)
文章图片
发现此服务接口方法名为get,参数为uri,返回类型为string类型。使用此接口读取tomcat配置文件/etc/tomcat6/tomcat-users.xml。
![WEB中间件——axis2+tomcat的个人理解](https://img.it610.com/image/info8/8baab9b7da2646348ee3cc4c45daac87.jpg)
文章图片
登录Tomcat管理后台:
![WEB中间件——axis2+tomcat的个人理解](https://img.it610.com/image/info8/ee677fb55f7241588160f564b669a0f1.jpg)
文章图片
上传war包后查看application发现部署的test应用:
![WEB中间件——axis2+tomcat的个人理解](https://img.it610.com/image/info8/d6e006c5cc3b4b758075eb1ce4dd9a7d.jpg)
文章图片
注:从上面可以看到axis2也是Tomcat的一个webService,也是部署后的应用。
![WEB中间件——axis2+tomcat的个人理解](https://img.it610.com/image/info8/5c31909ecf6445fbb482b022bcf72a2a.jpg)
文章图片
可以看到我们部署的test应用中的shell.jsp解析,获得webshell:
![WEB中间件——axis2+tomcat的个人理解](https://img.it610.com/image/info8/e87cee2ecd8041c1b99d8244b3caca8b.jpg)
文章图片
axis2部署aar服务:axis2服务的几个特殊路径:URL/axis2/URL/axis2/axis2-admin/URL/axis2/services/默认凭证:admin/axis2
使用默认用户名密码登录:
![WEB中间件——axis2+tomcat的个人理解](https://img.it610.com/image/info8/ba9ce77e86a3442098cb39535d48ca1b.jpg)
文章图片
在部署接口服务处上传aar包,包含各种类及方法作为接口。此处上传编写好的接口。
![WEB中间件——axis2+tomcat的个人理解](https://img.it610.com/image/info8/1a1bd2e658ad4df5866b11428fad90d7.jpg)
文章图片
可以看到上传成功, 点击查看可用的接口服务:
![WEB中间件——axis2+tomcat的个人理解](https://img.it610.com/image/info8/87f2ed5d3f8b4044815ac0c674030dbb.jpg)
文章图片
可以看到可用的Cat接口及其内部的方法名。进一步查看Cat接口的接口说明文档或者是映射文档wsdl,以exec命令执行接口为例:
![WEB中间件——axis2+tomcat的个人理解](https://img.it610.com/image/info8/bf31770abbd24f58a41700598399276e.jpg)
文章图片
可以看到此接口名为exec,参数为字符串型的cmd,返回类型为字符串类型,直接在URL中利用映射关系调用接口即可,请求接口方式如下:
![WEB中间件——axis2+tomcat的个人理解](https://img.it610.com/image/info8/486d88caf05d4cf197a79d5e6f4ff4c6.jpg)
文章图片
【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
推荐阅读
- 急于表达——往往欲速则不达
- 慢慢的美丽
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量
- 2019-02-13——今天谈梦想()
- 考研英语阅读终极解决方案——阅读理解如何巧拿高分
- Ⅴ爱阅读,亲子互动——打卡第178天
- 低头思故乡——只是因为睡不着
- 取名——兰
- 每日一话(49)——一位清华教授在朋友圈给大学生的9条建议
- 广角叙述|广角叙述 展众生群像——试析鲁迅《示众》的展示艺术