freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

任意文件读取到getshell
2021-06-08 18:20:37

环境介绍

url:https://abc.com/login.do
shiro框架
Linux

js的危害

shiro框架,之前貌似存在反序列化,可能修复了。没有跑出来。爆破登陆用户名密码也无果。
陷入成思,手足无措的时候就要看目录和js
目录为发现有利用的东西。
接下来爬取一下js
尝试js读取。然后GET遍历。
存在一个405页面
https://jmc.com/fileDownload.do的文件
405:请求的http方式不对。
这里利用burp进行http方式修改成POST。返回200,说明存在。
感觉有戏。

思路

405:是http方法不允许,这里改成post。
改成post,返回200,说明http方法正确。但是没有数据返回,那么应该想到,post参数问题。
这里的问题,fuzz->post参数。

一般存在问题:
    任意文件读取
    命令执行漏洞
表哥一下就看出来了。
https://jmc.com/fileDownload.do
这个url后面的fileDownload就是文件下载。
那么可能存在任意文件下载
下面进行post参数的fuzz
知道目标是linux系统。猜测这里任意文件下载,那么就进行读取/etc/passwd 尝试。
那么post数据包如下:
{pamar=/etc/pass}
这里对pamar进行fuzz。字典网上找的。

成功

经过字典fuzz,发现却是存在任意文件下载。
post参数为data

image.png

任意文件之路

学习

因为自己对linux任意文件读取到getshell不是很熟悉,这里就借助各种论坛和百度了。
开始之前,这里查阅了大量关于“任意文件读取到getshell”的文章

总结一些有价值的

历史命令
/root/.bash_history
/home/username/.bash_history
从上述发现很多路径和密码。
例如web日志路径
例如:mysql -uroot -p 123456 
直接在命令中输入密码真是坏习惯

image.png

私钥公钥
/root/.ssh/id_rsa 
/root/.ssh/authorized_keys
一般都不会开放端口,无法利用。
系统版本
/etc/redhat-release
提权需求
非常重要的一个配置文件
var/lib/mlocate/mlocate.db
基于本地所有文件的信息的配置信息都知道。需要高权限用户才可以。
其余的一些
/proc/sched_debug 配置文件可以看到当前运行的进程并可以获得对应进程的pid
/proc/pid/cmdline   则可以看到对应pid进程的完整命令行。
/proc/net/fib_trie   内网IP
/proc/self/environ   环境变量
/proc/self/loginuid   当前用户

过程

经过不停的测试。

读取到了目标:
web日志
最新的数据用户名密码
shadow
passwd
mlocate.db
数据库备份
任意文件getshell一般方式
1.找源码
2.找数据库
利用john 对passwd进行解密。没有跑出来。
尝试下载数据库备份,想拿到后台登陆的用户密码。
本地成功导入,发现密码是加盐的。没有找到算法,无果。

本想放弃,感觉好麻烦。

另类的getshell

目标是shiro框架,这里尝试去利用shiro的反序列化漏洞去执行。
利用公开的脚本没有跑出来key,那就要去读取目标的core.jar去主动寻找key值。

寻找core.jar

因为任意文件读取为高权限,这里成功读取到目标的mlocate.db
文件。
文件过大,可以下载下来。也可以利用burp返回包保存下来。
这里采用burp返回包保存下来,保存时,需要取消base64编码。

image.png

ps:关于mlocate.db文件的打开,采用下载方式,第一次玩,以为利用sqlite3去打开,发现提示不是有效的数据文件,未解决。

image.png

利用sublime打开搜索shiro

image.png

发现了core.jar,看版本和网上有漏洞的一模一样,为啥没有漏洞。然后找到了core.jar的绝对路径,利用任意文件下载,进行下载
利用Luyten去寻找key 值。
搜索Base64.decode

image.png

成功找到key。

image.png

利用网上shiro工具。拿到shell

image.png

就挺突然的。

疑惑

通过key读取,发现key就是最简单的key。不知道目标如何防护的。无法找到key利用。但是直接用key,就成功执行命令。
# 渗透测试 # web安全
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录