解決 6、ASP程式密碼驗證漏洞
漏洞描述:
很多網站把密碼放到資料庫中,在登陸驗證中用以下sql,(以asp為例)
sql="select * from user where username='"&username&"'and pass='"& pass &'"
此時,您只要根據sql構造一個特殊的使用者名稱和密碼,如:ben' or '1'='1
就可以進入本來你沒有特權的頁面。再來看看上面那個語句吧:
sql="select * from user where username='"&username&"'and pass='"& pass&'"
此時,您只要根據sql構造一個特殊的使用者名稱和密碼,如:ben' or '1'='1
這樣,程式將會變成這樣: sql="select*from username where username="&ben'or'1'=1&"and pass="&pass&"
or 是一個邏輯運算子,作用是在判斷兩個條件的時候,只要其中一個條件成立,那麼等式將會成立.而在語言中,是以1來代表真的(成
立).那麼在這行語句中,原語句的"and"驗證將不再繼續,而因為"1=1"和"or"令語句返回為真值.。
另外我們也可以構造以下的使用者名稱:
username='aa' or username<>'aa'
pass='aa' or pass<>'aa'
相應的在瀏覽器端的使用者名稱框內寫入:aa' or username<>'aa 口令框內寫入:aa' or pass<>'aa,注意這兩個字串兩頭是
沒有'的。這樣就可以成功的騙過系統而進入。
後一種方法理論雖然如此,但要實踐是非常困難的,下面兩個條件都必須具備。
1. 你首先要能夠準確的知道系統在表中是用哪兩個欄位儲存使用者名稱和口令的,只有這樣你才能準確的構造出這個進攻性的字元
串。實際上這是很難猜中的。
2.系統對你輸入的字串不進行有效性檢查。
問題解決和建議:
對輸入的內容驗證和"'"號的處理。
7、IIS4或者IIS5中安裝有INDEX SERVER服務會漏洞ASP來源程式
問題描述:
在運行IIS4或者IIS5的Index Server,輸入特殊的字元格式設定可以看到ASP來源程式或者其它頁面的程式。甚至以及添打了最近關
於參看原始碼的補丁程式的系統,或者沒有.htw檔案的系統,一樣存在該問題。獲得asp程式,甚至global.asa檔案的原始碼,無
疑對系統是一個非常重大的安全隱患。往往這些代碼中包含了使用者密碼和ID,以及資料庫的源路徑和名稱等等。這對於攻擊者收集
系統資訊,進行下一步的入侵都是非常重要的。
通過構建下面的特殊程式可以參看該程式原始碼:
http://202.116.26.38/null.htw?CiWebHitsFile=/default.asp&CiRestriction=none&CiHiliteType=Full
這樣只是返回一些html格式的檔案代碼,但是當你添加%20到CiWebHitsFile的參數後面,如下:
http://someurl/null.htw?CiWebHitsFile=/default.asp%20&CiRestriction=none&CiHiliteType=Full
這將獲得該程式的原始碼。
(注意:/default.asp是以web的根開始計算。如某網站的http:///welcome/welcome.asp
那麼對應就是:
http://someurl/null.htw?CiWebHitsFile=/welcome/welcome.asp%20&CiRestriction=none&CiHiliteType=Full
)
由於'null.htw'檔案並非真正的系統對應檔,所以只是一個儲存在系統記憶體中的虛擬檔案。哪怕你已經從你的系統中刪除了
所有的真實的.htw檔案,但是由於對null.htw檔案的請求預設是由webhits.dll來處理。所以,IIS仍然收到該漏洞的威脅。
問題解決或者建議:
如果該webhits提供的功能是系統必須的,請下載相應的補丁程式。如果沒必要,請用IIS的MMC管理工具簡單移除.htw的映象
檔案。
補丁程式如下:
Index Server 2.0:
Intel:
http://www.microsoft.com/downloads/release.asp?ReleaseID=17727
Alpha:
http://www.microsoft.com/downloads/release.asp?ReleaseID=17728
Indexing Services for Windows 2000:
Intel:
http://www.microsoft.com/downloads/release.asp?ReleaseID=17726