的注射過程是:SQL注入法
SELECT UserId, Name, Password FROM Users WHERE UserId = 105 or 1=1;
但是,我的問題是如何注入查詢的SQL工作?
的注射過程是:SQL注入法
SELECT UserId, Name, Password FROM Users WHERE UserId = 105 or 1=1;
但是,我的問題是如何注入查詢的SQL工作?
它時,你有你的查詢作爲字符串在你的代碼,這樣的事情
Query = "SELECT UserId, Name, Password FROM Users WHERE UserId = '" + sUserID + "'"
所以你通過sUserID = 「ABC」 OR 1 = 1;」
這將轉換像
SELECT UserId, Name, Password FROM Users WHERE UserId = 'ABC' OR 1=1
謝謝,這將有助於我..... –
@IsmayilS高興地聽到,我幫助:)請標記爲答案,如果它確實 – asmgx
由於條件1=1
總是true
,在WHERE
聲明的末尾添加這使得它無關,始終true
,彷彿WHERE
說法根本不存在所有。因此,無論添加到WHERE
語句中的任何其他條件如何,查詢總是被執行。
在這個例子中,你提供的,如果你允許用戶寫下自己的userID
,他們可以在輸入字段中或在網站的URL地址寫105 or 1=1
,並自or 1=1
使得UserId=105
沒用,查詢將始終選擇數據,因此SQL注入。
當添加'或1 = 1'時'WHERE'語句變得不相關,並且總是返回true,因此查詢總是被執行。 –
可能重複[找到'OR 1 = 1/\ * sql注入我的通訊數據庫](https://stackoverflow.com/questions/13867266/found-or-1-1-sql-injection-in-my-通訊數據庫) – karthik006