利用%5c繞過驗證

來源:互聯網
上載者:User
利用%5c繞過驗證

---------------------------------------
lake2(http://mrhupo.126.com)
2004-11-27
---------------------------------------

說到%5c,你是不是想起了當前流行的那個%5c暴庫漏洞,呵呵,本文就是對%5c利用的探索(呵呵,當然有我提出的新東東,或許對你有協助哦^_^)。

好,我們先追根溯源,找到那個漏洞的老底。看看綠盟2001年的漏洞公告:http://www.nsfocus.net/index.php?act=sec_bug&do=view&bug_id=1429

N年以前利用這個漏洞可以實現目錄遍曆,雖然微軟出了補丁,不過好像補丁是用來限制iis只能訪問虛擬目錄的,所以漏洞還是存在,只不過利用方式變了。對iis來說,提交一個含有%5c的url能夠找到檔案,但是該檔案裡以相對路徑引用的其他檔案卻找不到了(%5c是\的url編碼,iis跳轉到上一級目錄去找,當然找不到;頭暈了吧,哈哈,我也頭暈啊)。

後來這個漏洞就被牛人挖掘出來了,也就是傳說中的%5c暴庫:由於串連資料庫的檔案引用的相對路徑,提交%5c找不到檔案,所以導致出錯,iis就會老老實實的說出資料庫的路徑(不明白?找google)。

一個偶然的機會我發現還可以利用%5c繞過asp的驗證;當我們暴庫失敗的時候不妨試試。

廢話少說,看下面的代碼:

<!--#INCLUDE file="conn.asp" -->
<%
guest_user=trim(request("guest_user"))
guest_password=trim(request("guest_password"))
Set rs= Server.CreateObject("ADODB.Recordset")
sql="select * from admin where id=1"
rs.open sql,conn,3,2
readuser=rs("guest_user")
readpassword=rs("guest_password")
if readuser<>guest_user or readpassword<>guest_password then
response.write "請輸入正確地管理員密碼!"
response.end
else
session("admin")=1 '登陸後寫入seesion中儲存
response.write("登陸成功,請返回資訊頁")
end if
%>


看到沒有,要想通過驗證必須讓資料庫裡的使用者名稱密碼與提交的一致;想到什嗎?讓我們再看看資料庫連接檔案代碼:

<%
on error resume next
set conn=server.createobject("adodb.connection")
DBPath = Server.MapPath("guestbook.asp")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
%>

啊,有容錯語句不能暴庫!等等,如果提交%5c資料庫找不到,由於容錯,所以程式會繼續執行,那麼說來從資料庫得到的使用者名稱密碼皆為空白(想想有時暴庫失敗是不是看到空空的架構,因為資料都是空嘛),哈哈,這樣我們就繞過驗證了!

知道怎麼做了吧,把登陸頁面儲存到本地,修改提交的url,把最後一個/改成%5c,使用者名稱密碼用空格(有的程式會檢查使用者名稱密碼是否為空白,空格會被程式過濾),提交,就ok了。

誒,各位不要以為我自己沒事寫段代碼來搗鼓,實際上這個是我們學校一個高手做的留言板程式,就掛在學校的首頁,呵呵。

既然弄懂了原理,當然要找實際漏洞啦,自然是拿大名鼎鼎的“洞”網論壇開刀。不過失敗了,因為它的資料庫連接檔案裡有這麼一段:

If Err Then
err.Clear
Set Conn = Nothing
Response.Write "資料庫連接出錯,請檢查串連字串。"
Response.End
End If

資料庫找不到程式就結束了,呵呵,空歡喜一場。

接著又去down了bbsxp論壇,開啟資料庫連接檔案,暈,根本沒有容錯語句;呵呵,不過可以暴庫哦。

我又不是BT,所以不去找事了,寫篇文章,算是給各位高手提供資料吧。

總結一下這個攻擊方法成功的條件:1、資料庫連接用的相對路徑且僅有簡單的容錯語句;2、伺服器iis版本為4或5;3、程式裡不檢查Null 字元或者檢查時不過濾空格而比較時過濾空格;4、程式不能位於一級目錄

至於防範,呵呵,既然攻擊條件知道了,防範措施自然也出來了^_^




聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.