美文网首页Web安全漏洞分析网络与信息安全
Thinkphp5.0.X远程代码执行漏洞(2019.1.11)

Thinkphp5.0.X远程代码执行漏洞(2019.1.11)

作者: 简书这个地方快倒闭了 | 来源:发表于2019-01-15 23:24 被阅读15次

    周五下午爆洞能不能让人们好好休个周末!

    本次漏洞关键位置:/thinkphp/library/think/Request.php,lines:501由图可以看到在method函数中引入了可控的数据来源:

    官方github lines:501

    isset($_POST[Config::get('var_method')

    $this->method在取得该数据的值之后动态调用$this->{$this->method}($_POST),漏洞的关键位置即在该位置。攻击者调用该类任意函数,并通过$_POST作为参数。动态调用__construct函数即导致代码执行。

    下图为Request类中包含的__construct函数内容(lines:130):从中我们可以看到通过$options参数,攻击者可以覆盖到filter、method属性以及get属性的值。

    lines:130

    同时在Request当中的param函数(lines:617)中可以看到当$this->arrayParam为空时,即调用$this->get(false)

    lines:617

    $this->Get函数(lines:673)内容如下:在get函数末端我们可以看到其调用了input函数将攻击者可控的get内容进行了传值。

    lines:673

    input函数内容如下(lines:976):

    lines:976

    我们可以看到getFilter(lines:1005),继续跟踪至getFilter函数(lines:1035):

    lines:1035

    Filter返回后即进入input函数中解析过滤器的if当中,紧接着其调用了filtervValue函数(lines:1059):从中我们不难发现$filter$value均可自行控制。

    lines:1059

    攻击还原(仅供技术交流,请勿非法测试)

    攻击还原

    影响范围

    5.0.X<Thinkphp<5.0.24

    防御方案

    版本升级到5.0.24最新版本规避漏洞
    参考链接: https://github.com/top-think/framework/commit/4a4b5e64fa4c46f851b4004005bff5f3196de003?diff=split

    相关文章

      网友评论

        本文标题:Thinkphp5.0.X远程代码执行漏洞(2019.1.11)

        本文链接:https://www.haomeiwen.com/subject/fiiudqtx.html