由於網站后台在進行數據庫查詢的時候沒有對單引號進行過濾,當輸入用戶名【admin】和萬能密碼【2' or'1】時,執行的SQL語句為【Select user_id,user_type,email From users Where user_id=' admin' And password='2'or'1'].同時,由於SQL語句中邏輯運算符具有優先級,【=】優先於【and】,【and】優先於【or】,且適用傳遞性。因此,此SQL語句在后台解析時,分成兩句【Select user_id,user_type,email From users Where user_id='admin' And password = '2']和【1'】,兩句bool值進行邏輯or運算,恆為TRUE。SQL語句的查詢結果為TRUE,就意味着認證成
功,也可以登錄到系統中。