CTF從入門到提升(三)基於時間的盲注及部分函數

本次內容會先介紹一些函數,然後結合一些題目進行講解。這裏的基於時間是指延時。

​​我們對於盲注最早接觸的應該就是SLEEP函數, 很多編程語言中都有它。函數的特點就是添加延時功能,我們可以看一下它的一個效果是什麼樣子的。

(在這裏我做一個演示,如果大家想看可以到安全牛課堂的視頻裏看動手操作 CTF從入門到提升 課時3:1分10秒)
在這裏插入圖片描述
在這裏插入圖片描述
舉栗子:

在添加了SLEEP函數之後,它的運行結果要是變慢了,而且它的變慢的時間和我們填的設置的時間是接近的,或者說是長於這個時間的。那麼就能夠驗證佐證就是說我們sleep的函數它產生了這個效果:
在這裏插入圖片描述

剛剛的演示過程,我們輸入的代碼和正常的訪問產生了差異。( 有延時就說明我們的代碼生效了,沒有延時就說明沒有生效。)

在這裏插入圖片描述
整張表只有四條數據,id=1,基於邏輯上判斷來說,2邏輯前面爲真。id=1之後,它後面的邏輯就不管會不會運行SLEEP,但是針對表中的234,id≠1的,它就會去判斷後面這個邏輯,這個時候它就會都去做一個延時,運行一個SLEEP(3)。
延時數據需要一些配合,當前數據庫是sectest,很多時候我們去提供一個約束條件(查詢條件)的時候,它如果能查出數據來,其實就是告訴我們表中存在一條數據等於admin,或後面有and的時候,它就能夠去觸發這個效果,整個詞的查比較困難一些。但是我們要是換成一個字母一個字母的去查,就會快很多。這裏提到if條件,它其實是一個判斷語句,它有三個表達式,可以接收三個參數。

在這裏插入圖片描述
Expr1是一個判斷語句。

(在這裏我做一個演示,如果大家想看可以到安全牛課堂的視頻裏看動手操作 CTF從入門到提升 課時3:9分41秒)
在這裏插入圖片描述

然後這個時候我們再回過頭來看一下這些截取函數,做單字母的判斷,就是把查詢出來的結果做一下拆分。我們來看一下這些函數。第一個就是剛纔用SUBSTRING函數,其實它也是個截距函數。比如說我去查一個字符串是ABCDE 5個字母,第一個參數它其實就是代表要被它拆分截取的一個字符串,第二個參數就是position,下一個參數就是length。

在這裏插入圖片描述
另一個函數SUBSTING這個函數其實也是類似的:

(在這裏我做一個演示,如果大家想看可以到安全牛課堂的視頻裏看動手操作 CTF從入門到提升 課時3:15分41秒)

在這裏插入圖片描述
我們可以看一下例子:

比如說是AAABBBCCC count是去計算關鍵詞出現的次數。

(在這裏我做一個演示,如果大家想看可以到安全牛課堂的視頻裏看動手操作 CTF從入門到提升 課時3:18分14秒)

在這裏插入圖片描述

有的時候方式可以多一些。這裏提到既然rlike可以用的話,那麼對於正則表達式的一個匹配,還有一個regexp可以對它做一個正則匹配。

在這裏插入圖片描述

除了if還有很多的方就還有其他方式做語法表達。 case在很多編程語言中都理解成是某種情況,根據case也能做一個觸發case,當什麼的時候什麼條件下,它就會觸發一個什麼效果。

舉幾個例子:

(在這裏我做一個演示,如果大家想看可以到安全牛課堂的視頻裏看動手操作 CTF從入門到提升 課時3:23分30秒)

在這裏插入圖片描述
在這裏插入圖片描述
不想用引號怎麼辦,那我就要去配合使用阿斯克。把它轉成阿斯克碼值來做一個判斷。

(在這裏我做一個演示,如果大家想看可以到安全牛課堂的視頻裏看動手操作 CTF從入門到提升 課時3:27分37秒)
在這裏插入圖片描述
在這裏插入圖片描述

反過來阿斯科碼只是一個97,對它做一個阿斯科碼的轉換,第一個返回值用SLEEP函數。 SOPSTR去分割DATABSE,DATABSE是一個全局變量。SUPSTR(1,1)他這時候的返回的結果是一個字母,它的阿斯克碼值就應該是115。如果不是115的時候,比如說114,它是秒回,那麼通過這樣子,就可以判斷115就是第一個DATABSE這個變量的第一個字母的阿斯科碼值,也可以反推。

除了SLEEP之外還有一些函數,重複執行某個函數。

BENCHMARK
在這裏插入圖片描述

計算它的處理速度,就是說比如說表達式定義好了之後,這靠的就是它運算次數。

(在這裏我做一個演示,如果大家想看可以到安全牛課堂的視頻裏看動手操作 CTF從入門到提升 課時3:30分58秒)
在這裏插入圖片描述
在這裏插入圖片描述

延時的目的其實查詢語句都是一致的,只不過最後如何讓它產生延時,很有可能是CTF題目中需要想要你去考慮的一個問題。

笛卡爾積

在這裏插入圖片描述

(在這裏我做一個演示,如果大家想看可以到安全牛課堂的視頻裏看動手操作 CTF從入門到提升 課時3:34分42秒)
在這裏插入圖片描述

GET_LOCK

就是說它其實類似於上鎖的一個問題,對一個字母上了鎖之後,下再去查字符串就會產生一個延時。
在這裏插入圖片描述

可以看一下get knock

(在這裏我做一個演示,如果大家想看可以到安全牛課堂的視頻裏看動手操作 CTF從入門到提升 課時3:39分)
在這裏插入圖片描述

構造一個長字符串,然後再做一個匹配,然後就返回得非常慢。所以這裏也只是可以有個瞭解,那我們來看一下看這個效果。

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
以上動手演示可見:安全牛課堂《CTF從入門到提升

課程地址:https://www.aqniukt.com/my/course/8954​​​​​​​​

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章