初識sql注入

2021-09-25 09:06:34 字數 1098 閱讀 3803

初次認識sql注入是在django的orm裡用原生sql,如下:

from django.db import connection, connections

cursor = connection.cursor(

)# cursor = connections['default'].cursor()

cursor.execute(

"""select * from auth_user where id = %s""",[

1])#這裡不要用字串拼接,否則可能引起sql注入問題,把實參放在第二個形參裡面,dganjo會自動處理,避免sql注入問題的發生。--是sql注釋

row = cursor.fetchone(

)

django特別地做了處理,來防止sql注入,那sql注入是什麼呢?

舉乙個登入的例子:

form表單裡使用者名稱寫成123' or 1==1 --,密碼同樣輸入123' or 1==1 --

後台驗證:

usrname=request.post.get("username")

password=request.post.get("password")

cursor.execute("select * from auth_user where username = %s and password=%s"%(username,password)

row = cursor.fetchone()

if row:

#處理邏輯

這樣就成功登陸了,

因為實際執行的語句是

select * from users where username='123' or 1==1 --' and password='123' or 1==1 --'
按照 mysql 語法,所以以上語句等同於(實際上密碼框裡不輸入任何東西也一樣):

select * from users where username='123' or 1==1
就當然為真了,通過驗證

初識sql注入

三 滲透測試訓練環境 sql注入就是把sql命令插入到web表單然後提交到所在頁面請求 查詢字串 從而達到欺騙伺服器執行惡意的sql命令。舉乙個通俗的例子 說了這麼多,你應該對sql注入的原理有所了解了吧 sql injection 就是通過把sql命令插入到web表單遞交或輸入網域名稱或頁面請求的...

初識SQL注入

什麼是sql注入 sql injection 簡單示例 的登入介面,需要使用者輸入使用者名稱和密碼來進行登入,如果 開發者在開發時沒有考慮對sql注入加以防範,則惡意攻擊者就可以通過在使用者名稱和密碼輸入框中新增特定的sql語句,以達到查詢後台資料庫獲取資料,甚至對後台資料庫中的資料造成破壞的目的。...

安全牛學習筆記 初識sql注入漏洞原理

沒有對輸入的字元進行過濾,導致輸入的字元影響到 資料的查詢。程式設計 數學邏輯思維 and or xor 且 或 否 或 有乙個真就是真 且 有乙個假就為假 否 相反 怎麼找是否有注入漏洞?第乙個找符合引數鏈結的 第二個判斷是否存在注入 第三個實施注入攻擊 分析sql注入流程 第一步 猜解表名 第二...