欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

攻擊方式學(xué)習(xí)之SQL注入(SQL Injection)

 更新時(shí)間:2008年09月06日 12:34:30   作者:  
有些網(wǎng)站將直接拿用戶(hù)的輸入 來(lái)拼接SQL語(yǔ)句,進(jìn)行查詢(xún)等操作,同時(shí)也將錯(cuò)誤信息暴露給用戶(hù)。

探測(cè)
非常簡(jiǎn)單,輸入一個(gè)單引號(hào)('),看頁(yè)面是否出錯(cuò),要是頁(yè)面出錯(cuò)了,而且又將錯(cuò)誤信息暴露給你了那就太好了。
從錯(cuò)誤信息中觀(guān)察確定是哪種數(shù)據(jù)庫(kù),比如Access,SQL Server等。不同數(shù)據(jù)庫(kù)的SQL語(yǔ)句有些差別
靜態(tài)代碼分析,從代碼中檢查SQL語(yǔ)句是否是由字符串拼接而成。

實(shí)施方式
詳見(jiàn)示例網(wǎng)站

危害
變態(tài)性的,服務(wù)器被遠(yuǎn)程控制,想干嘛干嘛。
盜取性的,盜取了數(shù)據(jù)庫(kù)中的機(jī)密信息,謀取私利或其他。
破壞性的,直接破壞數(shù)據(jù)庫(kù)。
修改性的,篡改數(shù)據(jù),比如通過(guò)大學(xué)成績(jī)查詢(xún)修改成績(jī)。
我也沒(méi)干過(guò),想不出來(lái)了。

防范
在示例中也說(shuō)明了如何防范,在這里再精煉一下所謂的防止SQL注入四大法寶:

最小權(quán)限原則
特別是不要用dbo或者sa賬戶(hù),為不同的類(lèi)型的動(dòng)作或者組建使用不同的賬戶(hù),最小權(quán)限原則適用于所有與安全有關(guān)的場(chǎng)合。
在服務(wù)器端對(duì)用戶(hù)輸入進(jìn)行過(guò)濾
我 們要對(duì)一些特殊字符,比如單引號(hào),雙引號(hào),分號(hào),逗號(hào),冒號(hào),連接號(hào)等進(jìn)行轉(zhuǎn)換或者過(guò)濾;使用強(qiáng)數(shù)據(jù)類(lèi)型,比如你需要用戶(hù)輸入一個(gè)整數(shù),就要把用戶(hù)輸入的 數(shù)據(jù)轉(zhuǎn)換成整數(shù)形式;限制用戶(hù)輸入的長(zhǎng)度等等。這些檢查要放在server運(yùn)行,client提交的任何東西都是不可信的。
以安全的方式創(chuàng)建SQL語(yǔ)句
不要再用萬(wàn)惡的字符串拼接SQL語(yǔ)句了,使用Parameter對(duì)象吧,比如C#中的:
復(fù)制代碼 代碼如下:

string sqlText = "select * from [Users] where UserName = @Name";
SqlParameter nameParm = new SqlParameter("Name", uname);
sqlCmd.CommandText = sqlText;
sqlCmd.Parameters.Add(nameParm);

錯(cuò)誤信息不要暴露給用戶(hù)
當(dāng)sql運(yùn)行出錯(cuò)時(shí),不要把數(shù)據(jù)庫(kù)返回的錯(cuò)誤信息全部顯示給用戶(hù),錯(cuò)誤信息經(jīng)常會(huì)透露一些數(shù)據(jù)庫(kù)設(shè)計(jì)的細(xì)節(jié)。

特別注意:也許有很多人告訴過(guò)你使用存儲(chǔ)過(guò)程能免受SQL注入攻擊。這是錯(cuò)的!這只能阻止某些種類(lèi)的攻擊。比如存在sp_GetName存儲(chǔ)過(guò)程,我們的代碼如下:
復(fù)制代碼 代碼如下:

string name = ...; //name from user
SqlConnection conn = new SqlConnection(...);
conn.Open();
string sqlString = @"exec sp_GetName '" + name + "'";
SqlCommand cmd = new SqlCommand(sqlString, conn);

我們?cè)噲D輸入"Black' or 1=1 --"將會(huì)失敗,但下面的操作卻是合法的:
exec sp_GetName 'Black' insert into Users values(2008, 'Green') -- '
參考資料
Michael Howard, David LeBlanc. "Writing Secure Code"
Mike Andrews, James A. Whittaker "How to Break Web Software"
http://www.secnumen.com/technology/anquanwenzhai.htm

相關(guān)文章

最新評(píng)論