2024-05-06|閱讀時間 ‧ 約 25 分鐘

picoCTF_who are you_writeup

前言

感覺再不寫些甚麼筆就要開始生鏽了,以這樣的心情決定開啟 picoCTF writeup 系列。

也是因為最近生活過得平平淡淡,沒什麼值得和大家分享的,只好來寫寫我覺得有趣的 picoCTF writeup。


這篇是這系列的第一篇。希望自己可以用簡顯易懂的方式帶著各位享受尋找寶藏(flag)的樂趣。


正文

題述



當我們點開題目給的網址(bing如果打不開請用chrome)應該會看到一串文字和一張 gif 圖,如下所示:

看到這邊對於有看過類似概念題型的人應該會覺得這題很簡單,而且越解下去越覺得妙趣橫生,不過對於沒有概念的人那就只能通靈了。

我自己是屬於後者,因此我選擇使用魔法,而咒語如下:

Who are you? [WriteUp] | PicoCTF [Web Exploitation] | by Ngooi En Kai | Medium

如果不想念英文咒語或想看詳盡版的可以繼續往下讀(拜託了QQ)

開始解題

這題它其實是在考解題者對於 http header(維基百科有詳細介紹)的熟悉度。

首先它說它只相信 PicoBrowser,而告訴伺服器客戶端瀏覽器是哪種的是 User -Agent,預設是 Mozilla/5.0。既然題目跟我們說它只信任 PicoBrowser,那我們就依照它的要求改成 PicoBrowser。

改的方式有很多種,我自己用的是 burpsuite,它可以讓我們任意修改 http header。操作如下:

Raw裡的就是封包,藍字的是 http 欄位

在 repeater 中改好 User-Agent 後,按左上角的 send,右邊即會看到回傳回來的封包。長這樣......

最重要的地方我已經框起來了。

它說它不信任從其他網站來的人,這時我們需要用到 Referer 這個可愛的東西。它的作用是告訴伺服器說我們是從哪個網站轉過來的。比方說,我們用 google 查詢方格子,當我們點選方格子的連結時攔截封包,即可以看到 Referer 後面寫著 www.google.com。

於是乎我們在 Connection 前面加一欄 Referer,並在其後面貼上題目給的網址。

以為這樣就結束了嗎,那就大錯特錯了。接下來才是好玩的地方。因為每當我們修改完一次,題目就又會給出新的要求。當我們感到煩不勝煩時,才會終於把 flag 給我們看。不過,我認為這也是它的趣味所在。

接下來的動作基本都是一樣,在此就不多做贅述。我直接講等等還會用到那些 http 欄位,剩下的部分就交給各位慢慢去享受啦。


  • Date:傳送該訊息的日期和時間
  • DNT:設為 1 要求網站不要追蹤
  • X-Forwarded-For:連接到某個網頁伺服器的客戶端的原始網際網路位址


最後一個講解一下,因為題目要求造訪者要是在瑞士,所以我們去網路上找一個瑞士的 ip偽造自己在瑞士。

而如何找到一個在瑞士ip呢?

我自己是直接查 Sweden Website,然後把找到的網址用Linux ping 或 nmap 掃一下就可以拿到了。還有一個小秘訣,只要網域裡有 .se 的基本上就是 Sweden Website了。

好,我們接續下去。


  • Accept-Language:瑞士語代號 sv


做到這邊基本上就結束了。往下滑,就會非常開心的發現我們已經拿到 flag 了(完結,灑花╰(*°▽°*)╯)

結語

做完這題讓我想到最近很夯的零信任架構,到底有多紅呢?資安大會上光一天就有三個議程是在講零信任架構了。可想而知這個概念是多麼受到現在資安界的重視。

從這題就可以看見它的重要性了。不管我們設多少道門檻,駭客終究還是會有辦法將它繞過去。因此才會有,對所有請求皆保持不信任、對權力的釋放皆以最低限度為準等概念出現。


好啦,老樣子,在這邊偷偷告述大家一個秘密。

聽說幫這篇按讚的會好運一整天喔🥰

分享至
成為作者繼續創作的動力吧!
內容總結
picoCTF平台
5
/5
© 2024 vocus All rights reserved.