任意文件读取到getshell
2022-11-1 09:11:28 Author: 编码安全研究(查看原文) 阅读量:113 收藏

环境介绍

url:https://abc.com/login.doshiro框架Linux

js的危害

shiro框架,没有跑出来。爆破用户名密码也无果。
尝试js读取。然后GET遍历。存在一个405页面https://jmc.com/fileDownload.do的文件405:请求的http方式不对。这里利用burp进行http方式修改成POST。返回200,说明存在。
POST请求,需要参数的构造。一般思路
任意文件读取命令执行漏洞
这里看fileDownload.do为文件下载,尝试fuzz任意文件读取。
parms=/etc/passwd
利用参数字典去fuzz-parms,最终fuzz成功。
data=/etc/passwd

任意文件之路

开始之前,这里查阅了大量关于“任意文件读取到getshell”对文章

重要的文件

历史命令

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

私钥公钥

/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日志最新的数据用户名密码shadowpasswdmlocate.db

getshell

任意文件读取getshell一般方式

1.找源码2.找数据库

getshell过程

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

寻找core.jar

因为任意文件读取为高权限,这里成功读取到目标的mlocate.db文件。
文件过大,可以下载下来。也可以利用burp返回包保存下来。这里采用burp返回包保存下来,保存时,需要取消base64编码。
ps:关于mlocate.db文件的打开,采用下载方式,利用sqlite3去打开,发现提示不是有效的数据文件,未解决。
利用sublime打开搜索shiro
往上去寻找路径。得到shiro-core.jar的路径。下载下来。利用Luyten去寻找key 值。搜索Base64.decode
成功找到key。
利用网上shiro工具。拿到shell
就挺突然的。

疑惑

注:如有侵权请联系删除

   学习更多技术,关注我:   

觉得文章不错给点个‘再看’吧

文章来源: http://mp.weixin.qq.com/s?__biz=Mzg2NDY1MDc2Mg==&mid=2247497101&idx=1&sn=c368074b394d9a4c92c873d1f1b0ba5e&chksm=ce64a6e8f9132ffe315a504f7a57161b648b0f6c76a3ff2fc3d8a2b4d142f7e5da0082b519b3#rd
如有侵权请联系:admin#unsafe.sh