(以下語法均為在python中使用mysql語句,部分**省略,使用python中的pymsql模組獲取游標物件即可直接執行sql語句)
sql注入:在傳入引數的時候做出改變,使得插入資料這條sql語句在被執行的時候發生語義變化。
關鍵點:
1.傳入引數使用者名稱末尾帶 '
2.後面跟上 or 11 ,不一定非要是11,只要是條件為真即可
3.再跟上 -- ,--在sql語句執行時是注釋的意思,他後面的所有語句其全部被注釋
將123步合成就是: username' or 1==1 --
上述引數必須是當作使用者名稱傳入,而不能當作使用者密碼。
具體情景及語法例子:前端輸入使用者名稱時你輸入 :username' or 1==1 -- 這個,使用者密碼隨便輸,然後都能進入資料庫獲取資料。
語句:sql = "select * from usr_pwd where username='%s' and passwrod='%s' " % (user,pwd)
當你把使用者名稱輸成上述樣子,最終execute執行的時候相當於執行了此語句:
select * from usr_pwd where username='chenghao' or 1=1 結果是真,所以資料會被查詢出來
select * from usr_pwd where username='chenghao' or 1=1 -- ' and passwrod='555'
# execute 在執行查詢語句的時候,返回的是查詢的條數.
res = cursor.execute(sql)
總結:sql注入問題漏洞不知這一方面,目前沒有去了解其他的漏洞,有興趣的可以在下面分享。
sql 注入問題
1.關於使用intval強制轉換成數字的問題。數字大於2147483647會出現溢位出現負數。使用個方法來替代這個吧 n n a 2147483648.05555 echo intval a n result 2147483648 echo int a,n result 2147483648 ech...
SQL注入問題
什麼是sql注入問題?就是在拼接sql語句時,有一些sql的特殊關鍵字參與字串拼接,會咋總成安全問題 例如 輸入使用者民名和密碼時拼接sql語句 使用者名稱任意,密碼為乙個恒等式 select from user where usernamr sadfasfa 任意 and password a o...
SQL注入問題
sql 注入式攻擊是未將 與資料進行嚴格的隔離 導致在讀取使用者資料的時候 錯誤地把資料作為 的一部分執行而導致一些安全問題。sql 注入自誕生以來以其巨大的殺傷力聞名。典型的 sql注入的例子是當對 sql 語旬進行字串拼接操作時 直接使用未加轉義的使用者輸入內容作為變數 比如 var testc...