通过Thinkphp框架漏洞所发现的安全

前言

在一次偶然的机会发现公司某个网站存在thinkphp的远程命令执行漏洞,自此对这个漏洞爱不释手。这究竟是为什么呢?主要原因有2点:第一,如果网站存在这个漏洞,我们可以去执行各种各样的系统命令来进行测试观察,尤其要是还有管理员权限就更舒服了;第二点,只要发现对应版本的thinkphp,漏洞利用步骤较为简单。(主要还是笔者太懒,hhh!!!)关于这个漏洞分析笔者就不在这里献丑了,主要是介绍下如何来去挖掘这个漏洞,以及笔者相关的一些思路。希望能给刚入安全圈的新人一点灵感。

0x01漏洞简介

在年12月9日,thinkphp官方发布了一个重要的安全更新,修复了一个严重的远程命令执行漏洞。此次更新主要涉及到一个安全更新,由于框架对控制器名没有进行足够的检测会导致在没有开启强制路由的情况下可能的getshell漏洞,受影响的版本儿包括5.0(5.0.23)和5.1(5.1.31)版本儿。

0x02漏洞特性

这个特性可以说是大部分thinkphp框架的特性,在其网站url后输入一个不存在的路径,页面会报错,显示该网站一些配置信息以及thinkphp的版本儿,如图:

输入该网站一个不存在的路径11,或者是一些不存在的文件也可例如:11.php,11.txt。此时页面会报错,抛出异常,如图:

此时我们可以看到该网站的一些敏感配置信息比如网站路径,当然我比较感兴趣的还是这个thinkphp框架的版本,如图所示thinkphp版本儿清楚可见,看到这里可能大佬们就知道我接下来干啥了。

0x03漏洞复现

笔者感觉自己这个漏洞利用的方式还是比较简单粗暴的,初始也是抱着试一试的想法,也没想到就成功了。

首先打开百度,然后搜索引擎内输入“thinkphp5.0漏洞”,看到很多大佬的分析,随便点开一个链接,拿走大佬写好的payload。(当然这个paylaod自己也要根据实际情况做一点小改变,根据页面多观察几次来进行改动。如果网站漏洞已经修复了再去测试肯定不会成功了。)

开始漏洞复现:

利用system函数远程命令执行payload:




转载请注明:http://www.aierlanlan.com/rzfs/964.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了