ThinkPHP5 5.0.20 远程代码执行漏洞简述
本文最后更新于403 天前,其中的信息可能已经过时,如有错误请发送邮件到2292955451@qq.com

漏洞简介:

ThinkPHP,是为了简化企业级应用开发和敏捷WEB应用开发而诞生的开源轻量级PHP框架。

在ThinkPHP的V5版本中,由于没有正确处理控制器名,导致在网站没有开启强制路由的情况下(即默认情况下)可以执行任意方法(还有一种说法是可以通过url调用到ThinkPHP框架内部的敏感函数),从而导致远程命令执行漏洞。

PHP RCE

PHP RCE 又称远程代码执行漏洞,由于php代码对于外部输入的数据和执行命令的函数没有进行适当的过滤和处理,导致攻击者可以直接向后台服务器远程注入恶意代码指令,从而控制后台系统。

漏洞原理概述

通过研究了大佬的博客以后,这个漏洞应该是这样的

首先来看一下这个漏洞的绕过路径


http://61.147.171.105:49460/index.php/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=cat /flag
//本网址来自攻防世界PHP_RCE

补丁5.0地址改进控制器获取 · top-think/framework@b797d72 · GitHub

在index.php加载thinkphp框架引导文件后,会执行think\App::run()方法,“\”表示将App作为类名来调用,run()中引入了routecheck()函数

接着在routecheck()中有path()

在path()中有pathinfo()

在pathinfo()中有pathinfo信息,信息默认名称为“s”,对应的位置为index/think\app/invokefunction

然后在invokeMethod,可以看到该方法将运行call_user_func_array函数

好的我已经尽力了,但是我的水平真的就到这里了,我试着去分析补丁,但是他的路由跳的我头都麻了,等我nb起来了以后我再回来完善,现在还是太菜了。或着说什么时候社长看到了这篇文章,然后帮我继续修改下去。

如果你想要了解的更清楚,可以观看以下博客

thinkphp5.0远程代码执行漏洞利用分析_thinkphp5.0.20-CSDN博客

文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇