ThinkPHP是一个国内使用很广泛的老牌PHP MVC框架。貌似国内有不少创业公司或者项目都用了这个框架。
最近官方发布了一个安全补丁,官方表述是:该URL安全漏洞会造成用户在客户端伪造URL,执行非法代码。
可是貌似大多数开发者和使用者并没有注意到此漏洞的危害性,应者了了,更不用说有多少人去升级了。随后我对其进行了分析,发现此问题果然是一个非常严重的问题,只要使用了thinkphp框架,就可以直接执行任意php代码。特此发帖预警各位。
我们来分析一下官方的补丁:
/trunk/ThinkPHP/Lib/Core/Dispatcher.class.php
复制代码代码如下:
125 - $res = preg_replace('@(w+)'.$depr.'([^'.$depr.'\/]+)@e', '$var[\'\\1\']="\\2";', implode($depr,$paths));
125 + $res = preg_replace('@(w+)'.$depr.'([^'.$depr.'\/]+)@e', '$var[\'\\1\']=\'\\2\';', implode($depr,$paths));
这个代码是把pathinfo当作restful类型url进行解析的,主要作用是把pathinfo中的数据解析并合并到$_GET数组中。
然而在用正则解析pathinfo的时候,主要是这一句:
复制代码代码如下:
$res = preg_replace('@(w+)'.$depr.'([^'.$depr.'\/]+)@e', '$var[\'\\1\']="\\2";', implode($depr,$paths));
这里明显使用了preg_replace的/e参数,这是个非常危险的参数,如果用了这个参数,preg_replace第二个参数就会被当做php代码执行,作者用这种方式在第二个参数中,利用PHP代码给数组动态赋值。
复制代码代码如下:
'$var[\'\\1\']="\\2";'
而这里又是双引号,而双引号中的php变量语法又是能够被解析执行的。因此,攻击者只要对任意一个使用thinkphp框架编写的应用程序,使用如下方式进行访问,即可执行任意PHP代码:
复制代码代码如下:
index.php/module/action/param1/${@print(THINK_VERSION)}
由于是双引号执行,这里为了保险起见,不给出更有危害性的代码,利用这个还是需要点技巧的。
总之这个问题非常严重,找了一下,发现目前没有修补漏洞的网站还是很多的。而ThinkPHP框架的特征其实非常好识别, *** 直接写个scanner进行扫描也未必不可能。
我是淘宝店主,现需要做任务,只要有淘宝号就行了,我们不收任何压金,会费,收入一天30-50如果号多赚双倍,不懂可以教你,跟帖后,私信我,发你好两个字给我就可以,此帖长期有效 ...
一、东方联盟黑客官方网站(东方联盟对战日本黑客)方法总结 1、东方联盟官网网站为什么打不开服务器在美国,另外因为某些原因,可能被黑客DDOS打瘫痪了吧,网上之前看到有人找到他们网站的一个XSS漏洞。...
有时会常常在群内遇到一些客户说自身在重新安装 Windows 系统软件的情况下找不到硬盘,而出現这类状况多是因为电脑硬盘联接或是电脑硬盘沒有系统分区等普遍缘故造成的。下面大家就详尽的根据本文一起处理掉...
本文导读目录: 1、一个公司内网自用,不联通互联网,黑客能通过外界查到它的隐私吗 2、黑客删除别人手机照片可以不被任何人知道是谁删除的吗? 3、为什么黑客可以入侵别人的电脑而不被发现,他们是怎...
黑客技术自学教程(黑客技术入门教程)(tiechemo.com)一直致力于黑客(HACK)技术、黑客QQ群、信息安全、web安全、渗透运维、黑客工具、找黑客、黑客联系方式、24小时在线网络黑客、黑客业...
奶茶在我们中国有着很是大的市场,所以有许多投资者城市思量投资一家奶茶店,在浩瀚的奶茶品牌傍边,小鲸喜这也是一个很是有知名度的品牌。这一个品牌无论在哪一方面都做的相当不错,且在各多半会傍边加盟一直很是火...