Web滲透 SQL注入知識總結

2021-10-09 05:11:06 字數 3525 閱讀 3215

注入漏洞分類

sql手動注入

sql注入利用工具

sql注入漏洞如何防禦

資料data:在計算機系統中,各種字母、數字、符號的組合,語音、圖形、影象等統稱為資料

資料庫database:資料庫是按照資料結構來組織、儲存、管理資料的「倉庫」

資料庫管理系統dbms::一類操縱和管理資料的軟體,用於建立、使用、維護資料庫。它能對資料庫進行統一管理和控制,以保證資料庫的安全性和完整性

典型:access、mssql、oracle、sqlite、mysql等

結構化查詢語句sql:是一種資料庫查詢和程式語言,用於資料的增刪改查

sql語言包含的六大部分

dql資料查詢語句,如:select * from tb_name;

dml資料操作語句,如:inset插入,update更新,delete刪除 from tb_name where name=「user」

dcl資料控制語句,如:grant授權,revoke

ddl資料定義語句,如:create,drop

ccl指標控制語句,如:declare,cursor,fetch

tpl事務處理語句,如:commit,rollback

sql常見語句

查詢語句

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...