CTF從入門到提升(六)order_by注入及例題分享

位運算符
在這裏插入圖片描述

我們都知道常規的注入,比如id=100這種類型可以查詢出一篇文章,如果把100換成99+1它一樣可以查出,因爲它會做計算。order_by 去判斷列數的時候,如果把id=4換成3+1去執行,出來的結果並沒有做計算,所以這個運算效果沒有意義。

在這裏插入圖片描述
在這裏插入圖片描述
運算符如何運算呢?

位運算是將每一個值轉化成一個二進制字符串。按位的“and”或“or”,假設2 | 3,轉成字符串就是3。

在這裏插入圖片描述
在這裏插入圖片描述
ORDER BY

常規去使用order by的時候它後面會跟一個數字,通過它來判斷列數,但實際上後面的參數應該是什麼呢?

參數第一個位置必須是列名,可以用數字來代替,代表某一列。但是實際上後面還有還可以帶一個可選參數,比如說ASC和DESC,意思是正序還是倒序升序還是降序,後面括號有個N在裏頭,它其實後面還可以跟好幾列。
在這裏插入圖片描述

先根據ID先做排序,如果排完之後存在同面同變量的,它就會根據你設置的第二個參數進行排序了。
在這裏插入圖片描述

思考:

實際操作中如果能夠控制代入ASC和 DESC,是不是也可以做一個注入呢?(大家可以思考操作試一下)

在這裏插入圖片描述
在這裏插入圖片描述
order by 與bool型盲注結合

在這裏插入圖片描述
在這裏插入圖片描述

舉栗子

這是國外的某個網站上的一道題目,這道題目如果要訪問地快可以使用VPN。
在這裏插入圖片描述


可以發現 這裏變成了倒序:

在這裏插入圖片描述

爲什麼返回的順序是7356呢?

在這裏插入圖片描述

按位或,假設它是3236,那麼它的原來結果是1234。
在這裏插入圖片描述
和2去做一個“或”,結果全部計算之後再做排序。
在這裏插入圖片描述

假設正則表達式是以A字母爲開頭去和結果進行匹配,會發現正則表達式和它是不匹配的,返回值就是0。它的返回值就是和1進行“或”的結果。

在這裏插入圖片描述

如果換成是字母B開頭,它去匹配返回結果是1,按位2“或”拿到就是2的頁面。
在這裏插入圖片描述
在這裏插入圖片描述

腳本整理分享給大家:

在這裏插入圖片描述

以上內容參考安全牛課堂《CTF從入門到提升》、
在這裏插入圖片描述

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