什麼是SQL注入法攻擊 )1$k|3&{
Y hF?gME
HEc&FIhe!
此文章是對網上大量同類文章的分析與總結,並結合自己實施過程中的體會綜合而成,其中有不少直接引用,沒有注意出處,請原作者見諒) HW,}(
隨著B/S模式應用開發的發展,使用這種模式編寫應用程序的程序員也越來越多。但是由於程序員的水平及經驗也參差不齊,相當大一部分程序員在編寫代碼的時候,沒有對用戶輸入數據的合法性進行判斷,使應用程序存在安全隱患。用戶可以提交一段數據庫查詢代碼,根 lt$+uvm H
據程序返回的結果,獲得某些他想得知的數據,這就是所謂的SQL Injection,即SQL注入。 RVB''C0ViM
SQL注入是從正常的WWW端口訪問,而且表面看起來跟一般的Web頁面訪問沒什麼區別,所以目前市面的防火牆都不會對SQL注入發出警報,如果管理員沒查看IIS日志的習慣,可能被入侵很長時間都不會發覺。但是,SQL注入的手法相當靈活,在注入的時候會碰到很多意外的情況。能不能根據具體情況進行分析,構造巧妙的SQL語句,從而成功獲取想要的數據。 # _9\AT
據統計,網站用ASP+Access或SQLServer的占70%以上,PHP+MySQ占L20%,其他的不足10%。在本文,以SQL-SERVER+ASP例說明SQL注入的原理、方法與過程。(PHP注入的文章由NB聯盟的另一位朋友zwell撰寫的有關文章) UAnJC`1k
SQL注入攻擊的總體思路是: 1$t9,> ^r
l 發現SQL注入位置; ZW^g"}
l 判斷後台數據庫類型; _E21bfZ
l 確定XP_CMDSHELL可執行情況 HcLW/ M7L
l 發現WEB虛擬目錄 a<XA9le=
l 上傳ASP木馬; ^mZU2F&gKc
l 得到管理員權限; LiRlV\3R
一、SQL注入漏洞的判斷 Au/vW''T
一般來說,SQL注入一般存在於形如:HTTP://xxx.xxx.xxx/abc.asp?id=XX等帶有參數的ASP動態網頁中,有時一個動態網頁中可能只有一個參數,有時可能有N個參數,有時是整型參數,有時是字符串型參數,不能一概而論。總之只要是帶有參數的動態網頁且此網頁訪問了數據庫,那麼就有可能存在SQL注入。如果ASP程序員沒有安全意識,不進行必要的字符過濾,存在SQL注入的可能性就非常大。 H*V1aC(o]
為了全面了解動態網頁回答的信息,首選請調整IE的配置。把IE菜單-工具-Internet選項-高級-顯示友好HTTP錯誤信息前面的勾去掉。 fDtX|Ab
為了把問題說明清楚,以下以HTTP://xxx.xxx.xxx/abc.ASP?p=YY為例進行分析,YY可能是整型,也有可能是字符串。 T$Ya.Tb{
1、整型參數的判斷 ''9K.$A?