實驗吧ctf web題 這個看起來有點簡單

2021-08-07 06:59:20 字數 4059 閱讀 6924

從今天開始做實驗吧的ctf習題,爭取一天一道,一天一總結,做到不貪多,不糊弄,每天學習一點點,每天進步一點點。

今天做的是這個看起來有點簡單這個題,是一道sql注入的題目。用了兩種方法,一種就是從url進行sql注入,一種是使用sqlmap工具。

1. sql中union的用法

union操作符用於合併兩個或多個select語句的結果集

要求:union合併的select語句的結果集,必須擁有相同數量的列,列也必須擁有相似的資料型別,同時,列的順序必須相同。

- sql union語法

select column_name(s) from table_name1

union

select column_name(s) from table_name2

注意:預設地,union操作符選取不重複的值,如果允許重複,使用union all

- sql union all 語法

select column_name(s) from table_name1

union

allselect column_name(s) from table_name2

另外,union結果集中的列名總是等於union中第乙個select語句中的列名。

- 舉例

china表:

e_id

e_name

01zhang, hua

02wang, wei

03carter, thomas

04yang, ming

usa表:

e_id

e_name

01adams, john

02bush, george

03carter, thomas

04gates, bill

使用 union 命令,列出所有在中國和美國的不同的雇員名:

select e_name from china

union

select e_name from usa

結果

e_name

zhang, hua

wang, wei

carter, thomas

yang, ming

adams, john

bush, george

gates, bill

注釋:這個命令無法列出在中國和美國的所有雇員。在上面的例子中,我們有兩個名字相同的雇員,他們當中只有乙個人被列出來了。union 命令只會選取不同的值。

使用 union all 命令,列出在中國和美國的所有的雇員:

select e_name from employees_china

union

allselect e_name from employees_usa

結果

e_name

zhang, hua

wang, wei

carter, thomas

yang, ming

adams, john

bush, george

carter, thomas

gates, bill

2. mysql中information_schema是什麼

安裝完mysql之後,會有乙個information_schema資料庫,是mysql自帶的,不能刪除,他提供了訪問資料庫元資料的方式,所謂元資料,就是關於資料的資料,如資料庫名,表名,列名,訪問許可權等。

在mysql中,把 information_schema 看作是乙個資料庫,確切說是資訊資料庫。其中儲存著關於mysql伺服器所維護的所有其他資料庫的資訊。如資料庫名,資料庫的表,表欄的資料型別與訪問權 限等。在information_schema中,有數個唯讀表。它們實際上是檢視,而不是基本表,因此,你將無法看到與之相關的任何檔案。

information_schema資料庫表說明:

information_schema中的表

意義schemata表

提供了當前mysql例項中所有資料庫的資訊。是show databases的結果取之此表。

tables表

提供了關於資料庫中的表的資訊(包括檢視)。詳細表述了某個表屬於哪個schema,表型別,表引擎,建立時間等資訊。是show tables from schemaname的結果取之此表。

columns表

提供了表中的列資訊。詳細表述了某張表的所有列以及每個列的資訊。是show columns from schemaname.tablename的結果取之此表。

statistics表

提供了關於表索引的資訊。是show index from schemaname.tablename的結果取之此表。

user_privileges(使用者許可權)表

給出了關於全程許可權的資訊。該資訊源自mysql.user授權表。是非標準表。

schema_privileges(方案許可權)表

給出了關於方案(資料庫)許可權的資訊。該資訊來自mysql.db授權表。是非標準表。

table_privileges(表許可權)表

給出了關於表許可權的資訊。該資訊源自mysql.tables_priv授權表。是非標準表。

column_privileges(列許可權)表

給出了關於列許可權的資訊。該資訊源自mysql.columns_priv授權表。是非標準表。

character_sets(字符集)表

提供了mysql例項可用字符集的資訊。是show character set結果集取之此表。

collations表

提供了關於各字符集的對照資訊。

指明了可用於校對的字符集。這些列等效於show collation的前兩個顯示字段。

table_constraints表

描述了存在約束的表。以及表的約束型別。

key_column_usage表

描述了具有約束的鍵列。

routines表

提供了關於儲存子程式(儲存程式和函式)的資訊。此時,routines表不包含自定義函式(udf)。名為「mysql.proc name」的列指明了對應於information_schema.routines表的mysql.proc表列。

views表

給出了關於資料庫中的檢視的資訊。需要有show views許可權,否則無法檢視檢視資訊。

triggers表

提供了關於觸發程式的資訊。必須有super許可權才能檢視該錶

這道題目的url為:由id=1判斷可能存在sql注入,嘗試測試是否存在sql注入:

使用工具就很簡單了

- 檢視當前資料庫名

- 檢視表名

- 檢視列名

- dump資料

兩種方法總結完畢,對sql注入只是特別特別淺的認識,要好好研究一下,然後學習學習sqlmap工具的使用!

實驗吧 CTF Web 天下武功唯快不破

開啟鏈結 從頁面內容未發現明顯資訊,檢視源 發現 please post what you find with parameter key f12看到返回response headers中有flag字樣,看起來是base64加密,然後構造post包,重新請求,即可獲得flag 附python3指令碼...

實驗吧 web之「看起來有點難」詳解

工具 kali sqlmap 解題思路及方法 首先進入題目鏈結,看到這個分值,不禁讓我很擔心,這還是我第乙個50分值的題目,而且難度也是難,給的說明也是那麼霸氣。這些資訊都在向我們透露這題的難度,我也是抱著嘗試的心理去試試,並沒想著能做出來。進入解題鏈結,是乙個登入網頁,還有一些提示資訊 好吧,按著...

實驗吧 簡單的登入題

這是在實驗吧上面的一道web題。主要考察cbc位元組反轉攻擊。題目開始就是輸入id去登入 首先想到的就是sql注入了,輸入1 後頁面顯示hello,重新載入的話頁面返回報錯資訊 確實存在注入,看那後面的逗號,猜測注入點在limit後面。然後試了很多,發現題目把union,procedure等都過濾了...