记一次文件上传的曲折经历
信息收集
接到目标以后先信息收集,得知:
- 登录使用的shiro组件
- 获得低权限账号一枚,xxx/xxx
尝试过后发现shiro组件不存在反序列化漏洞,只能通过后台进行攻击。
任意文件上传-不解析
头像上传处,存在任意文件上传,但是jsp却不被解析。
且数据包中无控制路径的参数。
任意文件上传-跨目录
因为上传无果,且账号功能很少,没什么搞头,于是在账号的通讯录功能中收集了一批高权限管理员账号进行登录,发现了其他的上传点。
数据包如:
这里面返回了两个路径,分别是id参数和url参数的路径,id参数的路径是绝对路径,而url参数的路径是web能访问到的,因此猜测是管理员设置了映射,将静态资源映射了个URL。
证明如下:
文件写入成功,但是却访问不到:
原因是因为:/home/weblogic/userfiles/
映射给了/luxxx/userfiles/
这个URL,所以再往前的目录下,我们就访问不到了。这里还有个坑就是waf,../
超过3组的时候就拦截了,使用../..//../
即可绕过。
那现在的任务就是找到web的绝对路径就可以传shell了。
任意文件操作-删除
在测试过程中,发现真的是各种文件操作都存在问题。也是相辅相成间getshell了。
首先看到的是任意文件删除,
数据包:
但是没什么用,目标是打内网,不是搞破坏。
任意文件操作-读取
这个要在系统管理员账号里面才有的功能,我们第二步拿到的账号只是一个普通管理员,还没这个功能,也是在创建用户那加了个系统管理员权限的用户才找到的功能。
然后登录账号,有个文件管理的功能。
就是在下载功能中存在任意文件下载。
尝试下载.bash_history
然后写入shell,如下:
访问,404:
尝试读取一下。
文件存在,却访问不到。只能说明web目录找错了。
任意文件操作-文件移动
还是没办法,在测试其他功能的时候,发现有文件移动的功能,于是想上传一个cron,来反弹shell。
这样没有权限,拉闸。
获取网站路径-getshell
没办法了,再研究下.bash_history吧,说不定有其他的发现。
tomcat配置文件:
找到了web目录:
上传:
到这里就成功getshell了。
- 本文作者: 带头大哥
- 本文来源: 奇安信攻防社区
- 原文链接: https://forum.butian.net/share/48
- 版权声明: 除特别声明外,本文各项权利归原文作者和发表平台所有。转载请注明出处!