免责声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该文章仅供学习用途使用。
1
Start
从前两天《从404到RCE》的文章反馈来看,大家很喜欢看这个系列嘛(还没看过的铁汁可以点击链接查阅哦),刚好最近项目上又碰到一个比较有意思的网站,顺手也给记录了下来。
2
Action
故事的开始总是那么的普通,老生常谈的开局一个登录框。什么?还有人不会测试登录框?快去参考参考斯叔之前的文章:抛开day不谈,为什么同样一个站你挖不到洞,别人却能咔咔上分?
简单识别了一下指纹情况,只有shiro,但是没跑出来key,刚燃起来的火焰又被浇灭了
试了弱口令也无果,JS里面也没翻到什么有价值的内容。偶然瞥到了url栏里面的/xxx/admin/login(/xxx指代一级目录),你说会不会存在未授权的后台页面呢?试了一下访问/xxx/admin/home,emmm不行,302跳转回了登录框
看似走头无路,但是汇总一下目前已知的一些信息来看。。。首先网站是用了shiro的……嗯?shiro?谁说shiro只有爆key反序列化漏洞?还有权限绕过诶,试了一下权限绕过的poc:/xxx/;/admin/home,成了!
但是光是这个漏洞还不够呀,不得行啊,不能辅助rce这就是个垃圾洞,看看还能不能继续深入。翻了一下home页面加载的js文件,没啥能利用的接口呀,那咋办?没啥好办法,只能使用fuzz大法了,burp导入密码本,开扫!
功夫不负有心人,还真让我扫到了一个目录/xxx/;/admin/content,有数据!感觉有戏。
不过目前都是在burp里面访问这些资源,如何在浏览器里面自动的让url添加/;/呢?我们只需要在burp的代理模块里面按照下图的步骤添加一个规则,这时候经过burp的代理流量就会自动将匹配到一级目录/xxx/后面添加;/实现自动的shiro权限绕过了
随机点了一个标题的查看功能点
有上传点!稳一半了
经过测试,共有三个上传的接口,分别是/uploadImage,/uploadPicture以及/uploadVideo,其中前两个是白名单校验,不能上传非图片后缀的文件,最后一个能上传jsp(提示上传成功),但是不返回文件路径。
得盲猜文件路径了啊,有点难搞。不过当我回头分析/uploadImage接口的时候发现了一件事情,它是返回路径的,它告诉我文件保存在了/xxx/xx/res/images目录下面的
有没有一种可能,,/uploadVideo也是在/res目录下的?为了防止资源目录下可能不解析webshell文件,我特地在文件名处增加../跳跃到上一级目录,这样webshell的地址就在/xxx/xx/res/1.jsp了,上传成功
访问一下/xxx/xx/res/1.jsp,成了!
上传的马子是无害的自删除马子,访问后自动把自己删除掉
<%out.print("f7098ef4b298e771722e3935f309eb6e");new java.io.File(application.getRealPath(request.getServletPath())).delete();%>
一不小心又shell了。
如果你是一个长期主义者,欢迎加入我的知识星球,我们一起往前走,每日都会更新,精细化运营,微信识别二维码付费即可加入,如不满意,72 小时内可在 App 内无条件自助退款