专栏首页FreeBuf任意文件读取漏洞的曲折历程

任意文件读取漏洞的曲折历程

前言

这周授权测试了某系统,凭借着一个任意文件读取的漏洞,不断深挖,一波三折,历时将近24小时,也和Tide安全的小伙伴不断讨论,最终拿下目标的webshell。过程简直不要太美、太狗血,在此做个整理。

基本信息

目标:wy.xxx.com.cn(子域名) IP:114.xxx.xxx.xxx(阿里云) web 四大件: java、Apache Tomcat 7.0.61、mysql、linux 端口开放了太多,确定的是30126端口为ssh 子域名更多了,大多数均反查为该阿里云服务器。

弱口令

测试首先发现验证码无效,直接爆破。

这里分享了小技巧:

阿里云服务器在扫描目录或者爆破口令的时候,如果线程多高,IP会容易被封。可以再找一台阿里云服务器做代理进行测试。

放弃图片上传

选择权限比较高的用户登陆系统后,发现一处图片上传。

该处上传无任何校验,可以上传任何格式的文件。但都统一受到images.xxx.com.cn域名下,受nginx解析。

多次尝试无果后,遂放弃。

任意文件读取

在系统里闲逛一圈后,发现一处任意文件读取漏洞。

点击"下载模板文件"抓取数据包,可在数据包path参数看到系统路径。使用字典fuzz该参数。

查看返回包可收集到系统的许多信息。

1./etc/passwd

看到系统只有root、ftpimage这两个账户是可以登录的。

2./etc/shadow

看到shadow文件,说明当前权限是比较高的。

3./root/.bash_history

看到root用户执行的历史命令。确定当前为root权限。

且发现网站绝对路径的一部分/www/xxx-tomcat1/,马上想到翻看tomcat-users.xml文件,但并没有配置用tomcat manager。

还发现了logs目录的catanlina.out日志文件。

下载catanlina.out文件进行分析。

4.catanlina.out日志

该日志文件比较大,下载了多次都失败了,最终也是用自己阿里云服务器wget命令下载下来的,高达1.9g

war包

下载后,直接检索/www/xxx-tomcat1/,存在多个war包。

靠着任意文件读取下载了几个war包,部署到自己搭建的tomcat下进行查看。

基本上几个war包都大致差不多。猜测:系统使用war包部署到tomcat,一个war包对应一个域名。

ftpimage账号密码

在config.properties配置文件中发现了ftpimage账户密码,以及该war包所对应的域名。

比如run.war包。

一般配置文件都存放在/WEB-INF/classes/这个文件夹下。

记录着ftpimage账户的用户名密码

ip.imgservice这个属性也看得出,上传的图片都会在image.xx.com.cn这个域名下。

放弃axis2框架

有些war包里存在axis2框架

找到对应的域名访问axis2-web

如果可以上传arr木马就美滋滋了,但多次上传均404。

查找资料,发现axis2框架的正确结构是这个样子的。

猜测axis2框架应该无法使用,遂放弃。

放弃提权

之前获取到的ftpimage账号密码登录阿里云,发现权限特别低。只有www、var文件夹可读可写可执行的权限。但也能看到nginx、redis文件夹。

执行了几条提权命令也都不行,考虑到阿里云服务器,遂放弃。

33个域名

看到nginx文件夹,想到读取nginx.conf配置文件。

统计大概有33个域名,而且看到nginx统一设置了白名单,均image.xxx.com.cn这个域名解析。验证了之前的猜测。

结合catanlina.out日志和nginx.conf配置文件的域名,最终找到绝对路径和网站域名对应的关系。

/www/xxx-tomcat1/wy/ROOT/---------wy.xxx.com.cn
/www/xxx-tomcat1/care/ROOT/-------care.xxx.com.cn
/www/xxx-tomcat1/nd/ROOT/---------nd.xxx.com.cn
/www/xxx-tomcat1/elder/ROOT/------elder.xxx.com.cn
/www/xxx-tomcat1/wx2/xxxx.war/----wx2.xxx.com.cn

查看目标绝对路径/www/xxx-tomcat1/wy/ROOT/

/www/***-tomcat1/提示没有权限

但是/www/***-tomcat1/wy/ROOT/竟然有权限。

看到upload这个文件夹,比较好奇,ls发现全是xls文件。

xls上传

猜想一下:上传的xls表格文件存放在/www/xxxx-tomcat1/wy/ROOT/upload/这个文件夹下,和图片上传的那个位置不一样,存放在/www/upload/文件夹下。那么可以在目标系统里找对应的表格上传。

其实一些表格的上传、导入导出这种我很少测,认为会有格式校验

但转念一想,都测那么多了,不差这点了。

选择模板文件,抓取数据包上传。

返回包里还真有upload,但对应的temp目录下并没有a1a6d54010a34a58a9497fdc41ef42b2.xls这个文件。

空空如也,见鬼了!!!

做到这里想放弃了,实在是没有思路了。

没思路的我就只能一个文件一个文件的翻找,试图再发现点别的有价值的信息。然后我意外的在/www/xxxx-tomcat1/wy/ROOT/upload/images/文件夹下发现了大量的xls、jsp文件。

难道我上传的xls、jsp文件到这个目录下了?那也不对啊。

上传重命名后a1a6d54010a34a58a9497fdc41ef42b2.xls这个文件也不在啊。

于是我尝试又上传一个文件。

诡异的事情发生了!!!该目录下还真多了一个文件。

比较一下哪个是新增的文件,并尝试访问。

竟然真的可以。

直接上传冰蝎马。

然后系统就这样被拿下了,感觉最后这步太狗血了。多亏了Tide安全的小伙伴相互启发、相互激励。

我是Tide安全的CSeroad,对渗透测试、红蓝对抗方向感兴趣的小伙伴可以相互交流、相互学习。

总结

1、文件上传漏洞是最快一种获取webshell的方式。在图片上传、附件上传、头像上传都不行的情况下,试着看看模板上传、文件的导入、mp4的上传等等。最好任意一处上传也别放过。

2、不要忽视任意文件读取漏洞的危害,他可以为你收集系统、服务器的许多信息,比如系统的绝对路径、一些配置文件、备份文件的名称、有没有使用一些解析库(fastjson)等等。几个漏洞结合起来的效果也不错。

*本文原创作者:CSeroad,本文属于FreeBuf原创奖励计划,未经许可禁止转载ia'znauhz

本文分享自微信公众号 - FreeBuf(freebuf)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-03-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 革命性创新?走近“高水准”新型勒索软件Spora

    勒索软件几乎每周都会增加新的“家族成员”,这类威胁的影响力不断上升。Emsisoft(奥地利的信息安全公司,主营业务有反恶意软件、互联网安全、应急响应、移动安全...

    FB客服
  • WanaCrypt0r“想哭”勒索蠕虫数据恢复可行性分析报告

    目录 第一章 前言… 第二章 加密文件核心流程分析… 第三章 数据恢复可行性分析… 第四章 总结… 第一章 前言 近日,360互联网安全中心发现全球多个国家和地...

    FB客服
  • XiaoBa勒索病毒变种分析简报

    XiaoBa勒索病毒,是一种新型电脑病毒,是一款国产化水平极高的勒索病毒,主要以邮件,程序木马,网页挂马的形式进行传播。这种病毒利用各种加密算法对文件进行加密,...

    FB客服
  • 革命性创新?走近“高水准”新型勒索软件Spora

    勒索软件几乎每周都会增加新的“家族成员”,这类威胁的影响力不断上升。Emsisoft(奥地利的信息安全公司,主营业务有反恶意软件、互联网安全、应急响应、移动安全...

    FB客服
  • flask 自定义表单验证器(flask 19)

    from flask_wtf import FlaskForm from wtforms import StringField, PasswordField,...

    用户5760343
  • 人脸识别SDKFace++蝉联“科技部独角兽榜单”,再次位列AI视觉领域榜首

    科技部火炬中心在京发布了《2017中国独角兽企业发展报告》和《2017中关村独角兽企业发展报告》。大会还发布了两个权威榜单“中国独角兽企业榜单”和“中关村独角兽...

    BestSDK
  • Java 中的 Comparator 和 Comparable

    上一文简单对 Java 中的Comparator 接口进行了说明,今天我们来看看另一个和它非常类似的接口 java.lang.Comparable 。

    码农小胖哥
  • HttpClient4.4 登录知乎(详细过程)

    HttpClient是java语言下一个支持http协议的客户端编程工具包,它实现了HTTP协议的所有方法,但是不支持JS渲染。我们在做一些小玩意时,有可能需要...

    zhangheng
  • 工欲善其事,必先利其器之Linux下汉化Codeblocks

    最近补习数据结构和算法,顺便把在学校丢的东西都找回来~于是就想重新学习下C/C++,工欲善其事,必先利其器.网 上推荐使用codeblocks,下完安装之后发现...

    苦咖啡
  • 【每日一练】第002期

    会呼吸的Coder

扫码关注云+社区

领取腾讯云代金券