天天看點

SQL注入詳解-7

< DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd>

第三節、經驗小結

1. 有些人會過濾Select 、Update 、Delete 這些關鍵字,但偏偏忘記區分大小寫,是以大家可以用selecT 這樣嘗試一下。

2. 在猜不到字段名時,不妨看看網站上的登入表單,一般為了友善起見,字段名都與表單的輸入框取相同的名字。

3. 特别注意:位址欄的+ 号傳入程式後解釋為空格,%2B 解釋為+ 号,%25 解釋為% 号,具體可以參考URLEncode 的相關介紹。

4. 用Get 方法注入時,IIS 會記錄你所有的送出字元串,對Post 方法做則不記錄,是以能用Post 的網址盡量不用Get 。

5. 猜解Access 時隻能用Ascii 逐字解碼法,SQLServer 也可以用這種方法,隻需要兩者之間的差別即可,但是如果能用SQLServer 的報錯資訊把值暴露出來,那效率和準确率會有極大的提高。

防 範 方 法 SQL 注入漏洞可謂是“千裡之堤,潰于蟻穴”,這種漏洞在網上極為普遍,通常是由于程式員對注入不了解,或者程式過濾不嚴格,或者某個參數忘記檢查導緻。在這裡,我給大家一個函數,代替ASP 中的Request 函數,可以對一切的SQL 注入Say NO ,函數如下:

Function SafeRequest(ParaName,ParaType)

傳入參數 --- ParaName: 參數名稱- 字元型; ParaType: 參數類型- 數字型(1 表示以上參數是數字,0 表示以上參數為字元)

Dim Paravalue Paravalue=Request(ParaName)

If ParaType=1 then If not isNumeric(Paravalue) then Response.write " 參數" & ParaName & " 必須為數字型!" Response.end End if Else Paravalue=replace(Paravalue,"","") End if SafeRequest=Paravalue End function 文章到這裡就結束了,不管你是安全人員、技術愛好者還是程式員,我都希望本文能對你有所幫助。

本文轉自 netcorner 部落格園部落格,原文連結:http://www.cnblogs.com/netcorner/archive/2006/11/09/2912528.html  ,如需轉載請自行聯系原作者