实战|记一次有趣的文件上传绕过getshell

文章详细记录了一次渗透测试的过程,包括邮件信息收集、钓鱼尝试、Web打点策略,以及通过JS审计发现代码漏洞,利用文件上传白名单绕过获取shell权限的技巧。强调了在测试中细致的观察和创新的思路的重要性。
摘要由CSDN通过智能技术生成

前言

记录一下某次授权的渗透测试,感觉思路还是挺不错的,所以记录一下,有些截图不全,开始之前,需要对环境进行一个简单的描述,由于这次目标是一个传统行业,人员整体安全意识可能比较差,所以前期准备了邮件信息收集和钓鱼,另外不清楚目标服务器是不是做了变态的设置,信一直发不过去,之后对邮件服务器添加了spf和dkim记录,信才发了过去,看样子目标部署了邮件网关设备,这样的话钓鱼的成功率不太大,之后就钓鱼和web打点同时进行。

曲折的web打点

拿到目标后的首要任务就是打点,按照常规手段对目标的域名,子域名,目录,端口,ip,ip段进行信息收集,之后进行指纹识别,发现目标集团在互联网上的暴露的业务并不多,由于集团对外的http业务很少,然后也没有登录,注册接口,后来对25端口爆破了一些邮箱,也没有进展,马上要准备放弃web打点了,但是在一个子域名下的敏感目录发现不太对劲,我们的细心的渗透大牛立刻开始对这个前端js审计~~~。

JS审计

发现这个js里的有个注释信息挺可疑,并留下了一串数字,猜测这个数字可能是记录产品版本号的,根据多年摸鱼经验,对于这种的突然出现的一串数字不能放过!!!于是开始了漫长的网盘,搜索引擎,码云,github敏感信息收集,这里推荐Git信息收集使用工具Gitrob。于是我们在github上发现了源码~~~
 

代码审计

拿到这个站点的部分源码,开始进行常规的java代码审计,通过对常见的sink函数进行定位,博主心中默念readobject,ProcessBuilder,Runtime,ScriptEngine,parseObject,MultipartFile,果然幸运女神降临,突然发现了在一处代码块里使用了InputStream类,并且这个方法的输入并没有设置过滤,貌似可控,任意文件读!!!于是博主马上构建请求包验证漏洞。

读日志

之后的思路是去读中间件的日志看下有没有些敏感信息泄漏,这个中间件部署了不止这一个应用,还有一些其他应用的接口,把日志保存下来,用脚本自动化的去提取出这些接口,探测,有一个接口比较可疑。
 

文件上传白名单绕过getshell

之后查看web的日志,看看有没有敏感的接口,发现一个疑似上传的接口,访问一下,是个遗留的上传图片的接口,感觉可以shell,先试了下上传一个正常的图片可以上传成功,测试之后发现使用了白名单机制,只允许JPEG、jpg、PNG、BMP等文件格式的,没有对文件头进行限制,能getshell的几率瞬间直线下滑,突然想起来之前的一种文件上传白名单绕过的思路,假如上传的代码没有加锁,这时候可以利用上传时候的代码执行的需要一定的时间,加大客户端请求时候的并发,造成文件上传时候条件竞争,说干就干!准备好webshell,这个webshell的功能要能写一个大马到webapp根目录下,然后我们访问这个大马。先开两个intruder,然后请求上传的文件的并发开到100。



在经历了半个小时左右的404之后,发现了一个200,访问一下,果然可以了!之后就可以直接写jsp的webshell或者注入内存马。

其他

web打点对于思路很重要,所以师傅们对于一些细节一定要注意,条件竞争对于挖掘一些逻辑漏洞也很适用,订单购买/兑换/0元购等等,也有文件上传的场景也可以有很好的效果。打开这个口子之后连着主站,和内网是通的,之后的过程就轻松很多了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是黑客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值