今天我們要講的題目是Bookmarklet,一開始看到Bookmarklet這個關鍵字,我猜應該是要在網頁裡用Javascript來拿flag。
這裡可以看到題目給了我們一個網頁連結,點進來網頁長這樣。
可以看到,進去後表面上看不太出來有什麼東西。但有一段值得注意的地方是以Javascript:開頭的東西,這其實就是Bookmarklet一種可以直接寫Javascript放在書籤上的小程式。那我們複製他給的內容到書籤的URL欄位後再點一次書籤,就可以得到答案。
一開始使我們進入頁面時沒顯示答案是因為,原本的HTTP當成URL就只會發送請求不會執行js。當URL以Javascript開頭時,瀏覽器不會再去發送HTTP請求,而是把後面接的程式碼,直接當成JavaScript,在當前的網頁環境裡執行。所以只要flag隱藏在頁面程式碼裡,透過 Bookmarklet呼叫就能拿到答案。
今天這題雖然沒用到linux指令或工具,但讓我們學到Bookmarklet的使用方法,以及瀏覽器如何處理不同 URL 前綴,對日後操作網頁和快速測試Javascript很有幫助。