① 怎麼判斷一個網站是否有sql注入
許多網站程序在編寫時,沒有對用戶輸入數據的合法性進行判斷,使應用程序存在安全隱患。用戶可以提交一段資料庫查詢代碼,根據程序返回的結果,獲得某些想得知的數據,這就是所謂的SQL Injection,即SQL注入。如何判斷網站是否存在POST注入呢!請看以下步驟操作做。
POST注入操作介紹:
1.POST注入一般發生在表單數據傳輸時、抓取POST提交的數據進行SQL語句測試
POST注入操作流程:
比如抓取的POST數據為:userName=admin&password=admin
測試諸如語句填寫:userName=admin&password='admin 1=1--
像這樣userName 參數後面加一些SQL語句(注入測試語句)進行POST數據注入測試即可。
② SQL注入漏洞的判斷
如果以前沒玩過注入,
請把IE菜單-工具-Internet選項-高級-顯示友好HTTP錯誤信息前面的勾去掉。
為了把問題說明清楚,以下以asp?id=xx(" target=_blank>http://www.hackbase.com/news.asp?id=xx(這個地址是假想的)
為例進行分析,xx可能是整型,也有可能是字元串。
1、整型參數的判斷
當輸入的參數xx為整型時,通常news.asp中SQL語句原貌大致如下:
select * from 表名 where 欄位=xx,所以可以用以下步驟測試SQL注入是否存在。
最簡單的判斷方法
http://www.hackbase.com/news.asp?id=xx』(附加一個單引號),
此時news.asp中的SQL語句變成了
select * from 表名 where 欄位=xx』,
如果程序沒有過濾好「』」的話
就會提示 news.asp運行異常;
但這樣的方法雖然很簡單,但並不是最好的
因為
first,不一定每台伺服器的IIS都返回具體錯誤提示給客戶端,
如果程序中加了cint(參數)之類語句的話,SQL注入是不會成功的,
但伺服器同樣會報錯,具體提示信息為處理 URL 時伺服器上出錯。
請和系統管理員聯絡。
second,目前大多數程序員已經將「』「 過濾掉,所以用」 』」測試不到注入點
所以一般使用經典的1=1和1=2測試方法
見下文:
http://www.hackbase.com/news.asp?id=xx and 1=1, news.asp運行正常,
而且與http://www.hackbase.com/news.asp?id=xx運行結果相同;
http://www.hackbase.com/news.asp?id=xx and 1=2, news.asp運行異常;(這就是經典的 1=1 ;1=2 判斷方法)
如果以上面滿足,news.asp中就會存在SQL注入漏洞,反之則可能不能注入。
2、字元串型參數的判斷
方法與數值型參數判斷方法基本相同
當輸入的參數xx為字元串時,通常news.asp中SQL語句原貌大致如下:
select * from 表名 where 欄位='xx',所以可以用以下步驟測試SQL注入是否存在。
http://www.hackbase.com/news.asp?id=xx』(附加一個單引號),此時news.asp中的SQL語句變成了
select * from 表名 where 欄位=xx』,news.asp運行異常;
http://www.hackbase.com/news.asp?id=xx and '1'='1', news.asp運行正常,
而且與http://www.hackbase.com/news.asp?id=xx運行結果相同;
http://www.hackbase.com/news.asp?id=xx 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
③ 如何判斷SQL注入
使用參數!!比如一條查詢的sql語句原句:String sql = "select * from where name = 5";改變後:String sql = "select * from where name = @name";然後給@name賦值就可以了.
④ 如何判斷資料庫被SQL注入漏洞
SQL注入一般會在http://xxx.xxx.xxx/abc.asp?id=XX這樣等帶有參數的ASP動態網頁中,有些動態網頁中可能只有一個參數,有些可能有n個參數;有些參數是整型,有些參數是字元串型。只要是帶有參數的動態網頁訪問了資料庫就有可能存在SQL注入。
我們首選要修改瀏覽器的設置,以便更好的了解動態網頁參數里包含的信息。以IE瀏覽器為例,把IE菜單-工具-Internet選項-高級-顯示友好HTTP錯誤信息前面的勾去掉。
下面以http://xxx.xxx.xxx/abc.asp?p=YY為例進行分析,「YY」可能是整型,也有可能是字元串。
1、整型參數的判斷
當輸入的參數YY為整型時,通常abc.asp中SQL語句原貌大致如下:
select * from 表名 where 欄位=YY,所以可以用以下步驟測試SQL注入是否存在。
(1)http://xxx.xxx.xxx/abc.asp?p=YY and 1=2, abc.asp運行異常;
(2)http://xxx.xxx.xxx/abc.asp?p=YY』(附加一個單引號),此時abc.ASP中的SQL語句變成了select * from 表名 where 欄位=YY』,abc.asp運行異常;
(3)http://xxx.xxx.xxx/abc.asp?p=YY and 1=1, abc.asp運行正常,而且與http://xxx.xxx.xxx/abc.asp?p=YY運行結果相同;
如果這三個方面全部滿足,abc.asp中一定存在SQL注入漏洞!
2、字元串型參數的判斷
當輸入的參數YY為字元串時,通常abc.asp中SQL語句原貌大致如下:
select * from 表名 where 欄位=』YY』,所以可以用以下步驟測試SQL注入是否存在。
(1)http://xxx.xxx.xxx/abc.asp?p=YY&nb … 39;1』=』2′, abc.asp運行異常;
(2)http://xxx.xxx.xxx/abc.asp?p=YY&nb … 39;1』=』1′, abc.asp運行正常,而且與http://xxx.xxx.xxx/abc.asp?p=YY運行結果相同;
(3)http://xxx.xxx.xxx/abc.asp?p=YY』(附加一個單引號),此時abc.ASP中的SQL語句變成了select * from 表名 where 欄位=YY』,abc.asp運行異常;
如果這三個方面全部滿足,abc.asp中一定存在SQL注入漏洞!
3、字元被過濾的判斷
有安全意識的ASP程序員會過濾掉單引號等字元,以防止SQL注入。這種情況可以用下面幾種方法嘗試。
(1)ASCII方法:所有的輸入部分或全部字元的ASCII代碼,如U = CRH(85),一個= CRH(97),等等。
(2)UNICODE方法:在IIS UNICODE字元集實現國際化,我們可以在輸入字元串即輸入UNICODE字元串。如+ = % 2 b,空格= % 20,等;
(1)混合設置方法:大小是大小寫不敏感的,因為根據當時和過濾器的程序員通常要麼過濾所有大寫字母的字元串,或過濾所有小寫的字元串,大小寫混合往往會被忽略。如用SelecT代替select,SELECT等。
⑤ 判斷能否SQL注入的方法
是你網別人的網址上的參數傳遞中寫入自己的查詢語句
如htttp://www.abc.com/show.aspx?id=111
頁面處理的SQL語句應該是就
select title,content from article where id=111
如果你這樣寫
htttp://www.abc.com/show.aspx?id=111 ; delete article
他的SQL語句就會變成
select title,content from article where id=111; delete article
即執行了兩個語句,,1=1這些只是條件不一樣。
奉勸樓主不要做壞事,懂得注入原理就得了,防範好自己的網站。
⑥ 如何判斷網站是否可以sql注入
可以用工具探測的,具體的工具可以搜索。有些工具需要懂一些才能用。
⑦ 如何判斷網站中存在sql注入漏洞
這個回答可以簡單,可以變成一本書。 簡單的回答是,使用字元串長度檢查和字元檢查; 可以在客戶端和伺服器端同時做。 如用戶名長度為6位,密碼為6位; 客戶端不允許使用內部含「 」空格,-減號,'單引號
⑧ SQL注入漏洞判斷
select語句中如果條件是字元條件的話就要加上單引號',所以字元型的你只要看它符不符合加單引號後是正確的select語句就行了,符合就對,不符合就錯。
⑨ sql 注入問題。判斷sql 是否存在注入的關鍵是什麼呢只看sql語句還是其他的呢
最好不要這么用,明顯的注入,不要直接把值寫到語句中,用變數會好一點.