记一次实战getshell

漏洞发现

上网的时候偶然发现一个小程序后台,并且没有验证码。

见到网站就是曰,既然没有验证直接跑弱口令。

很可惜没跑出来。

本来就是路过,既然没有弱口令就打算放弃了。但是页面随便输入居然报错

原来是十年磨一剑的thinkphp5框架,既然如此就探测一下RCE吧。

ThinkPHP5.*rce

http://XXX.com/?s=captcha

POST:_method=__construct&filter=system&method=GET&s=whoami

页面报错:system() has been disabled

网站php设置disable_function禁用了system()函数,这样报错证明了网站是存在RCE的。

可以尝试用其他函数绕过disable_function。

但我是脚本小子,直接在GITHUB上找EXP。

上传webshell

这里是bewhale师傅的工具:https://github.com/bewhale/thinkphp_gui_tools

显示上传失败,实际上是成功了。

上传小马,冰蝎成功连接。本来到这里就结束了,但是

冰蝎并不能执行命令

此时我脑子里冒出了个想法,尝试用冰蝎自带的反弹shell.

发现仍然不能执行命令(废话)

整理一下思路,脚本能够上传小马,肯定是能执行命令的。既然如此,看脚本源码查看请求的方法?直接抓包,看成功上传WEBshell发起的请求。

一共请求了两种方法,system(),排除。assert()

但assert函数不能执行系统命令,而我的目标是getshell,既然如此只能尝试尝试绕过disable_function

绕过Disable_function

通过assert方法上传寻找漏掉的系统命令执行函数脚本:

https://github.com/l3m0n/Bypass_Disable_functions_Shell

上传并访问,pcntcl_exec可以使用。

用pcntl_exec方法写一个反弹shell脚本,上传并访问页面。

成功getshell

总结

看了大佬的源码,绕过DISABLE_FUNCTION的手段有一下几种:

pcntl_exec绕过

ld_preload绕过: 仅限Linux

ld加载php扩展

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

我是黑客

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

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

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

打赏作者

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

抵扣说明:

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

余额充值