著名的SQL流量注入 SQL注入 攻擊法

2021-04-23 14:53:28 字數 910 閱讀 9865

之所以舊事重提,只是想給那些還沒接觸到的人提個醒,順便聽聽眾位高手們的看法,好學習學習。

我們在程式設計過程中,經常會把使用者輸入的資料拼成乙個sql語句,然後直接傳送給伺服器執行,比如:

string sqlstr = "select * from customers where companyname like '%" + textbox1.text + "%'";

這樣的字串連線可能會帶來災難性的結果,比如使用者在文字框中輸入:

a' or 1=1 --

那麼sqlstr的內容就是:

select * from customers where companyname like '%a' or 1=1 --%'

這樣,整個customers資料表的所有資料就會被全部檢索出來,因為1=1永遠true,而且最後的百分號和單引號被短橫槓注釋掉了。

如果使用者在文字框中輸入:

a' exec sp_addlogin 'john' ,'123' exec sp_addsrvrolemember 'john','sysadmin' --

那麼sqlstr的內容就是:

select * from customers where companyname like '%a' exec sp_addlogin 'john','123' exec sp_addsrvrolemember 'john','sysadmin' --

這個語句是在後台資料庫中增加乙個使用者john,密碼123,而且是乙個sysadmin賬號,相當於sa的許可權。

如果使用者在文字框中輸入:

a' exec xp_cmdshell('format c:/y') --

執行之後好像是格式化c盤!

還有很多更危險的操作,不過都沒試過。還是儲存過程好用啊,儲存過程的引數把使用者的輸入當成真正的字串處理,既安全,又快速!

著名的SQL流量注入 SQL注入 攻擊法

之所以舊事重提,只是想給那些還沒接觸到的人提個醒,順便聽聽眾位高手們的看法,好學習學習。我們在程式設計過程中,經常會把使用者輸入的資料拼成乙個sql語句,然後直接傳送給伺服器執行,比如 string sqlstr select from customers where companyname lik...

SQL注入(三) sql注入 bugku

原理 mysql 在使用 gbk 編碼的時候,會認為兩個字元為乙個漢字,例如 aa 5c 就是乙個 漢字 前乙個 ascii碼大於 128 才能到漢字的範圍 我們在過濾 的時候,往往利用的思 路是將 轉換為 換的函式或者思路會在每一關遇到的時候介紹 因此我們在此想辦法將 前面新增的 除掉,一般有兩種...

SQL注入 報錯注入

乙個帶get引數的 並且不從資料庫返回資料,但存在報錯資訊 檢視字段情況 報錯注入語句格式 and 1 2 union select1,2,3 from select count concat floor rand 0 2 sql語句 a from information schema.tables...