ThinkPHP是一個(gè)國(guó)內(nèi)使用很廣泛的老牌PHP MVC框架。貌似國(guó)內(nèi)有不少創(chuàng)業(yè)公司或者項(xiàng)目都用了這個(gè)框架。
最近官方發(fā)布了一個(gè)安全補(bǔ)丁,官方表述是:該URL安全漏洞會(huì)造成用戶在客戶端偽造URL,執(zhí)行非法代碼。 復(fù)制代碼 代碼如下: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)); 這個(gè)代碼是把pathinfo當(dāng)作restful類型url進(jìn)行解析的,主要作用是把pathinfo中的數(shù)據(jù)解析并合并到$_GET數(shù)組中。 然而在用正則解析pathinfo的時(shí)候,主要是這一句: 復(fù)制代碼 代碼如下:$res = preg_replace('@(w+)'.$depr.'([^'.$depr.'/]+)@e', '$var['1']="2";', implode($depr,$paths)); 復(fù)制代碼 代碼如下:'$var['1']="2";' 復(fù)制代碼 代碼如下:index.php/module/action/param1/${@print(THINK_VERSION)} 總之這個(gè)問(wèn)題非常嚴(yán)重,找了一下,發(fā)現(xiàn)目前沒(méi)有修補(bǔ)漏洞的網(wǎng)站還是很多的。而ThinkPHP框架的特征其實(shí)非常好識(shí)別,有意者直接寫(xiě)個(gè)scanner進(jìn)行掃描也未必不可能。 為了不造成更大損失,特地發(fā)帖希望引起各位使用thinkphp做開(kāi)發(fā)的同學(xué)關(guān)注
|