1樓:匿名使用者
如果以前沒玩過注入,
請把ie選單-工具-internet選項-高階-顯示友好http錯誤資訊前面的勾去掉。
為了把問題說明清楚,以下以asp?id=xx(" target=_blank>http://www.
id=xx(這個地址是假想的)
為例進行分析,xx可能是整型,也有可能是字串。
1、整型引數的判斷
當輸入的引數xx為整型時,通常news.asp中sql語句原貌大致如下:
select * from 表名 where 欄位=xx,所以可以用以下步驟測試sql注入是否存在。
最簡單的判斷方法
附加一個單引號),
此時news.asp中的sql語句變成了
select * from 表名 where 欄位=xx’,
如果程式沒有過濾好“’”的話
就會提示 news.asp執行異常;
但這樣的方法雖然很簡單,但並不是最好的
因為first,不一定每臺伺服器的iis都返回具體錯誤提示給客戶端,
如果程式中加了cint(引數)之類語句的話,sql注入是不會成功的,
但伺服器同樣會報錯,具體提示資訊為處理 url 時伺服器上出錯。
請和系統管理員聯絡。
second,目前大多數程式設計師已經將“’“ 過濾掉,所以用” ’”測試不到注入點
所以一般使用經典的1=1和1=2測試方法
見下文:
執行正常,
而且與執行結果相同;
asp執行異常;(這就是經典的 1=1 ;1=2 判斷方法)
如果以上面滿足,news.asp中就會存在sql注入漏洞,反之則可能不能注入。
2、字串型引數的判斷
方法與數值型引數判斷方法基本相同
當輸入的引數xx為字串時,通常news.asp中sql語句原貌大致如下:
select * from 表名 where 欄位='xx',所以可以用以下步驟測試sql注入是否存在。
附加一個單引號),此時news.asp中的sql語句變成了
select * from 表名 where 欄位=xx’,news.asp執行異常;
and '1'='1', news.asp執行正常,
而且與執行結果相同;
and '1'='2', news.asp執行異常;
如果以上滿足,則news.asp存在sql注入漏洞,反之則不能注入
3、特殊情況的處理
有時asp程式設計師會在程式設計師過濾掉單引號等字元,以防止sql注入。此時可以用以下幾種方法試一試。
①大小定混合法:由於vbs並不區分大小寫,而程式設計師在過濾時通常要麼全部過濾大寫字串,要麼全部過濾小寫字串,而大小寫混合往往會被忽視。如用select代替select,select等;
②unicode法:在iis中,以unicode字符集實現國際化,我們完全可以ie中輸入的字串化成unicode字串進行輸入。如+ =%2b,空格=%20 等
;urlencode資訊參見附件一;
③ascii碼法:可以把輸入的部分或全部字元全部
<4>出了上述方法以外,還有個更簡單的方法就是使用現成的工具
像nb聯盟的nbsi就是一款很不錯的工具,目前最新的版本為2.2
2樓:山西新華電腦學校
sql注入:利用現有應用程式,將(惡意)的sql命令注入到後臺資料庫引擎執行的能力,這是sql注入的標準釋義。
解釋什麼是sql注入,xss漏洞
所謂sql注入,就是通過把sql命令插入到web表單提交或輸入域名或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的sql命令。而xss漏洞,就是跨站指令碼攻擊,是一種在web應用中的電腦保安漏洞,它允許惡意web使用者將 植入到提供給其它使用者使用的頁面中。xss csrf sql 什麼是sql注...
php如何防止sql注入
小雞再次 額,這是我老師給的答案 答 過濾一些常見的資料庫操作關鍵字,select insert,update,delete,and,等或通過系統函式addslashes對內容進行過濾 php配置檔案中register globals off 設定為關閉狀態.作用將註冊全域性變數關閉 如接收post...
SQL隱碼攻擊中整型引數和字串型引數是什麼有什麼區別嗎
我幫你解釋以下吧,我只比較瞭解數字型的。2 如果存在注入漏洞 and 後面是1 1,1 1是邏輯值真,所以所以網頁返回正常,與原來的網頁相同。3 and後面是1 2是邏輯值假,整個語句就是假,所以返回異常的頁面。判斷出存在注入漏洞後,就可以構造sql語句猜解了。sql資料庫可以運用一種叫做爆欄位的方...