Axis2 高版本Getshell方法
字数 1145 2025-08-24 07:48:10
Axis2 高版本Getshell方法详解
前言
本文详细分析Axis2高版本中的Getshell方法,针对1.7.4及以上版本的Axis2服务,解决传统方法失效的问题。通过分析URL解析特性和service.xml配置变化,提供有效的RCE方法。
背景知识
Axis2是一个流行的Web服务引擎,常用于Java Web服务开发。在安全测试中,低版本(如1.6.2)的Getshell方法已广为人知,但高版本(1.7.4+)由于配置变化导致传统方法失效。
漏洞利用条件
- 目标系统运行Axis2服务
- 能够访问Axis2管理控制台
- 存在弱口令或已获取凭证(如admin/axis2)
详细利用步骤
第一步:识别Axis2版本
访问目标Axis2服务,查看版本号。高版本(1.7.4+)的配置与低版本不同,需要特殊处理。
第二步:利用URL解析特性
Axis2存在URL解析特性,可通过Burp等工具进行请求替换:
- 原始访问路径可能为:
/axis2/services/ - 替换为:
/axis2/axis2-admin/
第三步:登录管理控制台
使用已知弱口令尝试登录:
- 常见凭证:admin/axis2
第四步:准备恶意aar包
从GitHub获取基础aar包:
https://github.com/Lexus89/AxisInvoker/blob/master/build/AxisInvoker.aar
第五步:修改service.xml配置
高版本Axis2(1.7.4+)的service.xml与低版本(1.6.2)有以下关键区别:
1.6.2版本配置:
<service name="HelloServer">
<description>Please Type your service description here</description>
<messageReceivers>
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
</messageReceivers>
<parameter name="ServiceClass">com.hongbo.server.HelloServer</parameter>
</service>
1.7.4版本配置:
<service name="HelloServer">
<description>Please Type your service description here</description>
<messageReceivers>
<messageReceiver mep="http://www.w3.org/ns/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
<messageReceiver mep="http://www.w3.org/ns/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
</messageReceivers>
<parameter name="ServiceClass">com.hongbo.server.HelloServer</parameter>
</service>
关键变化:
mep属性值从http://www.w3.org/2004/08/wsdl/in-only变为http://www.w3.org/ns/wsdl/in-onlymep属性值从http://www.w3.org/2004/08/wsdl/in-out变为http://www.w3.org/ns/wsdl/in-out
第六步:绕过ServiceClass验证
高版本会验证ServiceClass是否实现特定方法,错误提示为:
The ServiceClass object does not implement the required method in the following form: OMElement info(OMElement e)
解决方法:
- 确保ServiceClass实现
OMElement info(OMElement e)方法 - 或使用已知的有效webshell类
第七步:上传修改后的aar包
- 登录Axis2管理控制台
- 上传修改后的aar包
- 部署服务
第八步:执行命令
访问部署的服务,通过特定参数执行系统命令,实现RCE。
防御建议
- 修改默认凭证,使用强密码
- 限制管理控制台的访问IP
- 及时更新Axis2到最新版本
- 监控异常aar包的上传和部署
总结
通过分析高版本Axis2的配置变化,调整传统利用方法中的service.xml配置,可以成功绕过限制实现RCE。关键在于正确识别版本差异并相应修改配置。