SQL隱碼攻擊原理——萬能密碼注入

WQ_762發表於2018-08-06

【萬能密碼】的原理
使用者進行使用者名稱和密碼驗證時,網站需要查詢資料庫。查詢資料庫就是執行SQL語句。針對此BBS論壇,當使用者登入時,後臺執行的資料庫查詢操作(SQL語句)是【Selectuser id,user type,email From users Where user id=’使用者名稱’ And password=’密碼’】
由於網站後臺在進行資料庫查詢的時候沒有對單引號進行過濾,當輸入使用者名稱【admin】和萬能密碼【2’or’1】時,執行的SQL語句為【Select user id,user type,email From users Whereuser id=’ admin’ And password=’ 2’or1】。同時,由於SQL語句中邏輯運算子具有優先順序,【=】 優先於【and】,【and】 優先於【or】,且適用傳遞性。因此,此SQL語句在後臺解析時,分成兩句【Select user id,user type,emall From users Where user id=’ admin Andpassword=’2’ 】和【’1’ 】 兩句bool值進行邏輯on運算,恆為TRUE。SQL語句的查詢結果為TRUE,就意味著認證成功,也可以登入到系統中。

相關文章