这个0day是一个月前爆出来的,为什么我今天说呢,因为今天我遇到了一个学弟用这个带漏洞的系统改框架码代码,他是去年用这套系统为西电写的网络攻防大赛的主页,那个时候0day还没爆出,所以网站一直幸免于难,但是,最近西电又要举办一次网络攻防大赛了,他还是用这套系统,那我就要义不容辞的上它了 嗷哈哈
晚上他和我聊 要我出比赛的有关题目 然后扔了个连接给我

我看了下 系统还是以前的那个thinkphp 2.1的版本
我们来分析下漏洞吧
官方发布了一个安全补丁
表述是:该URL安全漏洞会造成用户在客户端伪造URL,执行非法代码。
官方的补丁:
/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″

这篇博客介绍了ThinkPHP 2.1版本的一个URL安全漏洞,该漏洞允许攻击者通过特定方式执行非法代码。文章详细分析了漏洞原因,涉及到preg_replace的/e参数风险,并展示了如何利用漏洞构造Webshell。尽管存在双引号转义等问题,作者最终通过打印eval执行POST数据成功获取Webshell。
最低0.47元/天 解锁文章
2742

被折叠的 条评论
为什么被折叠?



