當前位置:編程學習大全網 - 源碼下載 - 如何判斷數據庫被SQL註入漏洞

如何判斷數據庫被SQL註入漏洞

SQL註入壹般會在選項-高級-顯示友好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等。

  • 上一篇:app開發要花多少錢?2017最專業的分析。
  • 下一篇:“Android NDK ”是什麽,在什麽情況下使用?
  • copyright 2024編程學習大全網