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

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

漏洞简介

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

漏洞特性

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

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

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

漏洞复现

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

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

开始漏洞复现:

利用system函数远程命令执行

payload:http://xxx.com/index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami 如图

我们不难看出当前网站确实存在并且能够执行系统命令,后面的测试方法就比较大众化了,容笔者稍微说下,各位看官一看就懂:

  • 首先看下自己当前权限是否是管理员权限,如果是再好不过,不然后面还得想方法进行提权。(emm出现thinkphp漏洞已经很不应该了,如果这里再是管理员权限的话,网站的管理员老哥应该好好反省下了)
  • 然后再上传一句话木马,菜刀链接,基本到这就差不多了。(不要随便操作哦)
  • 通过相关平台将此漏洞告诉相关厂商。(xx不规范,牢底坐到穿)

漏洞分析

这里不是原理分析哈,只是笔者一点浅薄的看法和经验。

笔者发现thinkphp框架搭好以后,页面有如下图所示的一些字体。

然后又通过观察之前所构造的payload : http://xxx.com/index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami

想到谷歌搜索引擎强大的搜索功能 ,于是构造语句“ thinkphp十年磨一剑 inurl:index.php”(说实话结果我也是吓了一跳,)

搜到大量使用该框架的网站,而且通过钟馗之眼一类的搜索引擎通过搜索 “十年磨一剑 – 为API开发设计的高性能框架 [ V5.0+版本由+七牛云+独家赞助发布+]”也能搜索到大量此类网站。

据此可见有很多网站再使用thinkphp 5.0这一版本儿框架,可能搜到的这些网站有一些管理员已经修复该版本儿漏洞,但是应当还会有一大部分管理员仍未曾修复该漏洞。(想必这点大家都会想到,而且会有黑客用此类方法批量拿站)

观点

通过thinkphp 这一版本儿漏洞,笔者想到其实蛮多的。

  • 一些cms网站的漏洞挖掘方式其实和笔者所提到的thinkphp漏洞挖掘的方式还是比较一致的,都有某些方面的特征,比如版本号,url组成等等。这类通用型漏洞在利用其来技术门槛相对较低,比如笔者通过信息收集发现大量类似网站,一旦爆发危害蛮大,之前很多的事件儿都说明了这个问题。(这个漏洞挖掘指的是别人已经发布过的漏洞,而不是去挖掘还未曾发现的漏洞)
  • 很多网站的管理者(中小型网站)都不具备安全意识,等到安全问题一旦爆发悔之晚矣。往往出现这类漏洞(出现很长时间却没修复的漏洞)的网站一般是中小型网站,当然大点儿的网站可能也有,但是相较于这类网站就少了。
  • 人是安全的尺度这句话不假,管理网站的是人,但是往往安全和可用性又是相对的,无法去追求过度的安全,这就造成了一些漏洞的存在其实是在所难免的。即便这个网站的管理者能够想到很多很多问题,但是可能某一天他也会犯一些失误,或者配置失误或者删库,不要以为删库这种骚操作不会出现在自己身上。

emm希望有一天出现一个啥绝对的安全,这样我们就能愉快的转行,各位大佬和同僚也能实现自己的梦想,开超市的开超市,卖煎饼果子的卖煎饼果子 。。。。。若干年后又是一段传奇啊hhhh!!!

建议

漏洞修复建议:该版本儿thinkphp漏洞(大部分漏洞修复方式)修复最简单的修复方式就是升级到新版本,打补丁,或者进行手动修复等等。

当然还有一个问题也需要进行修复,就是笔者前面所说输入一个不存在的路径或文件页面会抛出很多系统相关信息以及路径,一旦和该网站别的漏洞相结合后患无穷。

关于相关搜索引擎网站应该加以限制。

希望以上东西能够帮到大家。

 

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/141516.html<

(0)
运维的头像运维
上一篇2025-03-04 10:51
下一篇 2025-03-04 10:52

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注