There is a website running at https://2019shell1.picoctf.com/problem/12273/ (link) or http://2019shell1.picoctf.com:12273. Do you think you can log us in? Try to see if you can login!
你能登入以下這個網站嗎? https://2019shell1.picoctf.com/problem/12273/
There doesn't seem to be many ways to interact with this, I wonder if the users are kept in a database?
從網頁左上角登入找到 Admin Login 後,隨便填入帳號密碼想當然而進不去。這時返回登入頁面並搭配開發者模式下的 “Elements” 頁面查看會發現送出去的資料中還有 debug 這個變數,我們直接改為 1 之後再登入一次看看。
這一次頁面顯示了不一樣的東西,除了輸入的帳密外,還有資料庫的查詢語法(SQL)。
加上原本的 HINT,暗示了這次的使用者已經不能再使用 cookie 方式修改進入,於是 google “sql query 漏洞”除了得知資料庫的漏洞正式名稱為 “ SQL Injection”外(之後的關鍵字搜尋),從範例中選擇其中一個可用的語法 'OR 1=1 -- 填入 Username:即可登入並解出 flag。
原本以為題目難度會先出如何修改 POST 的資料,想不到這麼快進入 SQL injection 的範圍...如果對資料庫不熟悉的玩家請自行多花費點時間在資料庫的概念上。例如找到的範例文章[Postx1] 攻擊行為-SQL 資料隱碼攻擊 SQL injection。簡而言之,SQL injection 是指在可輸入的資料中(例如帳號、密碼欄位、帶參數的網址等),我們輸入特殊的字串,例如資料庫本身的語法,或是特殊的指令等,讓伺服器端出現異常行為,進而獲取機密資料甚至取得控制權。
picoCTF{s0m3_SQL_34865514}