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

环境介绍

url:https://abc.com/login.do
shiro框架
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日志
最新的数据用户名密码
shadow
passwd
mlocate.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

就挺突然的。

疑惑

通过key读取,发现key就是最简单的key。不知道目标如何防护的。无法找到key利用。但是直接用key,就成功执行命令。

侵权请私聊公众号删文

推荐阅读   

【入门教程】常见的Web漏洞--XSS

【入门教程】常见的Web漏洞--SQL注入

sql注入--入门到进阶

短信验证码安全常见逻辑漏洞

最全常见Web安全漏洞总结及推荐解决方案

常见的Web应用的漏洞总结(原理、危害、防御)

代码审计常见漏洞总结

Web安全漏洞的靶场演示

13 款 Linux 比较实用的工具

xss攻击、绕过最全总结

   学习更多技术,关注我:   

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


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