一、sql注入的概述
定義:sql注入即是指web應用程式對使用者輸入資料的合法性沒有判斷,攻擊者可以在web應用程式中事先定義好的查詢語句的結尾上新增額外的sql語句,以此來實現欺騙資料庫伺服器執行非授權的任意查詢,從而進一步得到相應的資料資訊。
●sql注入威脅表現形式可以體現為以下幾點:
●繞過認證,獲得非法許可權
●猜解後台資料庫全部的資訊
●注入可以借助資料庫的儲存過程進行提權等操作
●sql注入攻擊的典型手段
●判斷應用程式是否存在注入漏洞
●收集資訊、並判斷資料庫型別
●根據注入引數型別,重構sql語句的原貌
●猜解表名、欄位名
●獲取賬戶資訊、攻擊web或為下一步攻擊做準備
二、sql注入的簡單例子
1.sql注入漏洞的幾種判斷方法
①'②and 1=1
③and 1=2
如果執行①後,頁面上提示報錯或者提示資料庫錯誤的話,說明是存在注入漏洞的。
如果執行②後,頁面正常顯示,而執行③後,頁面報錯,那麼說明這個頁面是存在注入漏洞的。
2.收集資訊、判斷資料庫型別
3.根據注入引數型別,重構sql語句的原貌
①id=40 這類注入的引數是數字型,那麼sql語句的原貌大致是:select*from 表名 where 字段=40
②name=電影 這類注入的引數是字元型,sql語句原貌大致是:select*from 表名 where 字段=『電影』
③搜尋時沒有過濾引數的,如keyword=關鍵字,sql語句原貌大致是:select*from 表名 where 字段 like 『%關鍵字%』
4.猜解表名、欄位名(直接將sql語句新增到url後)
①and exists(select*from 表名)
如果頁面沒有任何變化,說明附加條件成立,那麼就是說明猜解的表名正確,反之,就是不存在這個表,接下來就繼續猜解,知道正確
②and exists(select 字段 from 表名)
方法原理同上
③猜解字段內容(利用以上猜解出的表名和欄位名 方法較古老且麻煩)
●猜解字段內容的長度
(select top 1 len(欄位名)from 表名)>0 直至猜解到》n不成立的時候,得出欄位的長度為:n+1。
●得到長度後,猜解具體的內容
(select top 1 asc(mid(username,1,1))from 表名)>0直到》m不成立時,就可以猜解出ascii碼值了。
注:本人新學習sql注入,有不對之處望指出並修改,謝謝!!!
SQL注入原理以及基本方法
一 sql注入的概述 定義 sql注入即是指web應用程式對使用者輸入資料的合法性沒有判斷,攻擊者可以在web應用程式中事先定義好的查詢語句的結尾上新增額外的sql語句,以此來實現欺騙資料庫伺服器執行非授權的任意查詢,從而進一步得到相應的資料資訊。為了更直觀的讓大家了解到sql注入的原理,貼上一張s...
SQL注入基本型別以及如何防止sql注入
注入型別 1.數字注入 select from users where name jack and password 1 or 1 1 password 2.字串注入 select from user where name jack and password sdjakfjsadklfjklsdfd...
sql注入原理及基本認識
sql注入簡介 所謂sql注入,就是通過把sql命令插入到web表單提交或輸入網域名稱或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的sql命令。具體來說,它是利用現有應用程式,將 惡意的 sql命令注入到後台資料庫引擎執行的能力,它可以通過在web表單中輸入 惡意 sql語句得到乙個存在安全漏洞...