【轉(zhuǎn)】WEB安全系列之二:SQL注入漏洞
* 注入漏洞攻擊利用的重點(diǎn)是具有交互功能的使用數(shù)據(jù)庫的動(dòng)態(tài)站點(diǎn)
* 注入漏洞攻擊的技術(shù)重點(diǎn)是在服務(wù)器端執(zhí)行攻擊者的SQL語句
* 注入漏洞攻擊的方法重點(diǎn)在于動(dòng)態(tài)網(wǎng)頁存在不安全的SQL生成語句
本文內(nèi)容重點(diǎn)在于介紹注入漏洞的攻擊過程。
在很多動(dòng)態(tài)web應(yīng)用中,會(huì)提供給用戶輸入的接口,并且根據(jù)用戶的輸入來生成數(shù)據(jù)操作的SQL語句。比如一個(gè)簡單的用戶登錄對話窗。
所謂注入漏洞,是指在上述描述的部位,利用輸入的數(shù)據(jù)參與執(zhí)行的原理,輸入惡意的內(nèi)容,進(jìn)而該惡意內(nèi)容可被執(zhí)行。舉例如下:
在一個(gè)登錄界面中,用戶要輸入自己的ID號(hào)和密碼來完成登錄過程,生成的SQL可能是如下這個(gè)樣子:
select * from t_users where user_name=' + 用戶輸入的ID + ' and user_pwd=' + 用戶輸入的密碼 +'
一個(gè)非法的窺探者,在用戶ID輸入框中輸入 00' or '1'='1 并在密碼框里輸入00,生成的整個(gè)SQL就變成:
select * from t_users where user_name='00‘ or '1'='1' and user_pwd='00'
這樣,查詢是有結(jié)果的,對于不嚴(yán)密的判斷,非法用戶得以進(jìn)入該系統(tǒng)。
上面的例子展示了非法登錄的手段。如果用于產(chǎn)品檢索,則一個(gè)普通用戶權(quán)限的用戶可以用非法手段獲得全部產(chǎn)品列表。更嚴(yán)重的情況是非法用戶利用這種漏洞執(zhí)行系統(tǒng)存儲(chǔ)過程,建立系統(tǒng)用戶,打開系統(tǒng)限制,完成系統(tǒng)登錄。
如果我們利用數(shù)據(jù)庫存儲(chǔ)過程來完成檢索,利用參數(shù)傳遞的方式來傳送參數(shù),就可以避免這種情況。
* 注入漏洞攻擊的技術(shù)重點(diǎn)是在服務(wù)器端執(zhí)行攻擊者的SQL語句
* 注入漏洞攻擊的方法重點(diǎn)在于動(dòng)態(tài)網(wǎng)頁存在不安全的SQL生成語句
本文內(nèi)容重點(diǎn)在于介紹注入漏洞的攻擊過程。
在很多動(dòng)態(tài)web應(yīng)用中,會(huì)提供給用戶輸入的接口,并且根據(jù)用戶的輸入來生成數(shù)據(jù)操作的SQL語句。比如一個(gè)簡單的用戶登錄對話窗。
所謂注入漏洞,是指在上述描述的部位,利用輸入的數(shù)據(jù)參與執(zhí)行的原理,輸入惡意的內(nèi)容,進(jìn)而該惡意內(nèi)容可被執(zhí)行。舉例如下:
在一個(gè)登錄界面中,用戶要輸入自己的ID號(hào)和密碼來完成登錄過程,生成的SQL可能是如下這個(gè)樣子:
select * from t_users where user_name=' + 用戶輸入的ID + ' and user_pwd=' + 用戶輸入的密碼 +'
一個(gè)非法的窺探者,在用戶ID輸入框中輸入 00' or '1'='1 并在密碼框里輸入00,生成的整個(gè)SQL就變成:
select * from t_users where user_name='00‘ or '1'='1' and user_pwd='00'
這樣,查詢是有結(jié)果的,對于不嚴(yán)密的判斷,非法用戶得以進(jìn)入該系統(tǒng)。
上面的例子展示了非法登錄的手段。如果用于產(chǎn)品檢索,則一個(gè)普通用戶權(quán)限的用戶可以用非法手段獲得全部產(chǎn)品列表。更嚴(yán)重的情況是非法用戶利用這種漏洞執(zhí)行系統(tǒng)存儲(chǔ)過程,建立系統(tǒng)用戶,打開系統(tǒng)限制,完成系統(tǒng)登錄。
如果我們利用數(shù)據(jù)庫存儲(chǔ)過程來完成檢索,利用參數(shù)傳遞的方式來傳送參數(shù),就可以避免這種情況。
posted on 2010-04-14 14:18 小默 閱讀(238) 評(píng)論(0) 編輯 收藏 引用 所屬分類: Security

