注入漏洞分類
sql手動注入
sql注入利用工具
sql注入漏洞如何防禦
資料data:在計算機系統中,各種字母、數字、符號的組合,語音、圖形、影象等統稱為資料
資料庫database:資料庫是按照資料結構來組織、儲存、管理資料的「倉庫」
資料庫管理系統dbms::一類操縱和管理資料的軟體,用於建立、使用、維護資料庫。它能對資料庫進行統一管理和控制,以保證資料庫的安全性和完整性
典型:access、mssql、oracle、sqlite、mysql等
結構化查詢語句sql:是一種資料庫查詢和程式語言,用於資料的增刪改查
sql語言包含的六大部分
dql資料查詢語句,如:select * from tb_name;sql常見語句dml資料操作語句,如:inset插入,update更新,delete刪除 from tb_name where name=「user」
dcl資料控制語句,如:grant授權,revoke
ddl資料定義語句,如:create,drop
ccl指標控制語句,如:declare,cursor,fetch
tpl事務處理語句,如:commit,rollback
查詢語句
select * from tb_name;插入語句
insert into tb_name values(「name」,「password」,「phone」);更新語句
update tb_name set password="cj123456"where name=「chenj」;刪除語句
delete from tb_name where name = 「chenj」;排序語句:order by 預設公升序,但在sql注入裡面,用來判斷表有多少列
聯合查詢:union
select * from tb1union all select * from tb2
sql注入介於客戶端browser向指令碼引擎請求這一步。
注入就是把sql命令插入到web表單遞交或網域名稱或請求查詢的字串中,
最終達到欺騙伺服器執行惡意命令。
sql注入即是指web應用程式對使用者輸入資料的合法性沒有判斷或過濾不嚴,
攻擊者可以在web應用程式中事先定義好的查詢語句的結尾上新增額外的sql語句,
在管理員不知情的情況下實現非法操作,以此來實現欺騙資料庫伺服器執行非授權的任意查詢,
從而進一步得到相應的資料資訊。
繞過登入驗證 獲取敏感資料 檔案系統操作
登錄檔操作 執行系統命令
**與資料不區分
伺服器未對使用者提交的引數資料進行校驗和有效過濾,
直接進行sql語句的拼接,改變原意,傳進資料庫解析引擎中執行
資料庫惡意操作 伺服器遠端控制
數字型注入
類似這種結構,基於此種形式的注入構造出類似如下的sql注入語句進行爆破:
select * from 表名 where id1 and 1=1
字元型注入
類似這種結構基本步驟:帶猜測性質,考驗經驗sql 語句原型大概為 select * from tb_name where user=『admin』
構造出類似與如下的sql注入語句進行爆破:
select * from 表名 where user=『admin』 and 1=1 』
我們需要將這些煩人的引號給處理掉
判斷能否注入:通過url後加上 and 1=1,如果現實正常說明有漏洞
and 1=2會報錯,那是因為1=2語句本身就報錯的,但實際上這條語句還是成功執行了
爆字段長度:用order by + 數字 這個語句檢測關鍵字id所在表有多少列
檢測表存在:id=1 and exists(select * from admin),顯示正常說明存在名為admin的表
檢測字段存在:id=1 and exists(select username/password from admin),顯示正常說明存在名為username/password的列
匹配字段(union 聯合查詢:id=1 and 1=2 union select 1,2,3,…,x 回顯出錯列,可能就是username/password
將回顯的列替換成username/password 顯示管理員賬號密碼
登入後台,一般為ip/admin 或者ip/login
1.測試連通性(ping)
2.使用sqlmap工具利用具有sql注入漏洞的頁面鏈結(
sqlmap -u 「猜解出資料庫,資料庫名(back-end),資料庫型別(microsoft access)
sqlmap -u 「 -d back-end dbms --tables檢視資料庫中存在哪些表
sqlmap -u 「 –d back-end dbms -t admin --columns檢視admin表中有哪些列
sqlmap -u 「 –d back-end dbms -t admin -c username,password --dump完善過濾物件猜解username和password這兩列的值
字典爆破出賬號admin,密碼是admin888的md5加密值
過濾特殊字元
web滲透 SQL注入檔案dump
這次注入主要是針對php來說的。如果通過dump錯誤命令來進行錯誤盲注。將表的內容到處為乙個文字檔案。select 列名 from table where 語句 into outfile 目標檔案 option 將表的內容匯出為乙個文字檔案,一次到處一行 將資料匯入mysql 1 2 3 and s...
滲透攻防Web篇 Django中SQL注入攻與防
所謂sql注入,就是通過把sql命令插入到web表單提交或輸入網域名稱或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的sql命令。具體來說,它是利用現有應用程式,將 惡意的 sql命令注入到後台資料庫引擎執行的能力,它可以通過在web表單中輸入 惡意 sql語句得到乙個存在安全漏洞的 上的資料庫,...
web滲透 SQL注入資料庫資訊盜取
sql注入原理 指令碼 接收來自前端資料未進行過濾,導致惡意sql語句插入到資料庫中查詢執行。如下 id get id sql select from user where id id result mysql query sql sql注入攻擊流程 1.and語法判斷是否存在注入點 and 1 1...