desc注入及相關例題分享
desc是函數describe的簡寫,一般用來提供和表相關的列信息來查看錶的結構。
很多CTF賽題考點都是運用它的一些我們不太熟悉的特性或者說使用方法。常規來講desc後面跟的是表名,但事實遠不止於此,除了表名還可以有第二個參數。 而且在第二個參數中,它除了列名之外,還可以是包含sql通配符的字符串。
演示一下:
它會出一個表的一個結構。
下一個參數去跟一個列名:
例題分享
第一步先拿到源碼
可以選擇在這兩個地方注入:
在中間加一堆引號這時候就會變成兩個變量,因爲前引號和後引號閉合,新加的在後面去閉合。
繞過desc的使用,到select查詢語句進行注入
構造語句
這是我們傳遞的一個參數,實際的情況是:
假設能夠實現成功,實際返回值有兩個:
所以就要對它做一個限制(偏移),比如說limit限制輸出是一個offset偏移是一個,就是跳過第一個,然後再去執行一下。
但是這個地方不要單單推不能用一個參數
我們要的數據(flag)就存在這個表中,要去查這個數據就要去拿這張表的一個列名,就變成一個concat
用它轉成16進制,在他前面去加一個0X對吧,這時候就會拿到這個列明。
萬能密碼
從某張表中去讀一條數據,傳遞的這種用戶名和密碼如果存在它會認爲登陸成功。
舉栗子:
通過false邏輯來產生true邏輯
以上內容參考安全牛課堂《CTF從入門到提升》
課程地址:https://www.aqniukt.com/course/8954