<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>BLOsGa</title><description>OsGa 的部落格 — 紀錄技術、資安與生活</description><link>https://blog.osga.dev/</link><language>zh-CN</language><item><title>免費仔也能用自己的網域收發信！Cloudflare + Gmail SMTP 的免費套餐</title><link>https://blog.osga.dev/posts/FreeGmailSMTP/</link><guid isPermaLink="true">https://blog.osga.dev/posts/FreeGmailSMTP/</guid><pubDate>Sun, 05 Apr 2026 00:00:00 GMT</pubDate><content:encoded># 前言

當你買了一個自己覺得酷酷的 Domain，想用這個信箱來寄一些信給朋友、工作上聯絡等等...

結果發現 Google Workspace 真的好貴嗚嗚，買不起；而且自己的需求也沒那麼大，只是想簡單收發個信而已

所以，讓我們用 Cloudflare + Gmail 打出一套免費套餐！

# 收信

如果有在用 Cloudflare，應該都知道 Cloudflare 本身就有 forward 功能

舊版可以到 Domains → 你想要收信的 Domain panel 裡，找到電子信件路由 → 路由規則

新版則被搬到 運算 → 電子郵件服務 → 電子郵件路由

你可以在下方自訂位址，設定一個自己 domain 的收信信箱，然後 forward 到你平常在用的 Gmail、Outlook 之類的信箱

![這是舊版的](CF-Email-Routing.png)

這樣只要有人寄信到你設定好的信箱，Cloudflare 就會自動幫你轉寄到你指定的目的地

當然你也可以設定 `*@example.com`，這樣任何開頭，例如 `hi@example.com`、`abcd@example.com` ... 都會轉寄到你設定的目的地  
好處是你可以用不同信箱名稱來區分用途，之後在收信端做分類也會比較方便

像是你可以這樣玩：

- `work@example.com` 拿來工作聯絡
- `hi@example.com` 拿來日常往來
- `shopping@example.com` 拿來註冊購物網站
- `game@example.com` 拿來註冊遊戲或論壇
- `trash@example.com` 拿來丟一些你不太信任、但又非註冊不可的服務

這樣之後如果哪個信箱開始狂收到廣告或垃圾信，你也比較容易知道是誰把你的信箱流出去的

![寄信給設定好的信箱](SendMailForCFmail.png)

![目的地信箱收到寄送的信件](GmailGetMailFormCF.png)

# 寄信

不過這樣我們還是不能直接用自己的 Domain 來寄信，因為上面那套只是收信轉寄而已

如果你想自己架 SMTP Server，除了麻煩之外，還會遇到 IP 信任度、垃圾信判定、SPF / DKIM / DMARC 之類的問題，對只是想小量寄信的人來說真的有點太硬

但如果只是小量寄件，其實 Gmail 本身就有提供 SMTP 可以用，拿來當自己的發信出口就夠用了

到 Gmail 的所有設定

![這地方我每次都找很久，怕有人跟我一樣所以我特地放一張圖](GmailSetting.png)

找到 `帳戶和匯入` 分頁，底下有個 `選擇寄件地址`，點 `新增另一個電子郵件地址`

![帳戶和匯入](GmailSendAddress.png)

名稱就是這個信箱寄信時要顯示的名字，電子郵件地址就是你要拿來寄出的那個信箱

![電子郵件資訊](OtherEmailInfo.png)

SMTP 的設定如下：

- SMTP 伺服器：`smtp.gmail.com`
- 使用者名稱：你的 Gmail 信箱
- 密碼：你的 Gmail 密碼

&gt; 如果你的帳號有開 2FA，可以到 [MyAccount](https://myaccount.google.com/apppasswords) 建立專屬密碼來用

![SMTP 資訊](GmailSMTPAcc.png)

設定完成後，Gmail 會寄一封確認信到你剛剛填的信箱  
因為我們前面已經用 Cloudflare 把信轉寄到你平常在收的信箱了，所以去收那封確認信，點裡面的驗證網址就完成了

![完成設定](GmailAc.png)

重新整理一下 Gmail，就可以看到剛剛設定好的寄件地址

你也可以把它設成預設寄件信箱，或是幫不同信箱配不同簽名檔，讓不同用途的信件分得更清楚

![從 Gmail 寄出](SendByGmail.png)

![痾嗚嗚 Outlook 爛掉了](Outlook.png)

## 補充一下 Gmail SMTP 的限制

這套很適合個人、小量、低頻率使用

如果你是用一般個人 Gmail 帳號，Google 官方的每日寄信上限是 **500 封**，而且 **單封信最多也不要超過 500 個收件人**

所以這套比較適合：

- 個人聯絡
- 小量工作往來
- 網站表單通知轉寄後手動回信
- 履歷、自介、接案聯絡
- 自己平常用自己的網域寄信

但如果你要拿來發電子報、大量通知、行銷信，就不太適合了，很容易撞到限制，寄送穩定性也不是設計給這種用途的

真的有大量發信需求的話，還是建議上專門的郵件服務，像是 Google Workspace、Resend、SendGrid、Mailgun 之類的會比較妥當

# 參考資訊

- [TonyPepe - 自訂網域免費收發信 -- Cloudflare Email Routing 搭配 Gmail SMTP](https://tonypepe.com/posts/others/cf-email-routing-gmail)
- [ianiiaannn&apos;s Blog - 使用 Gmail SMTP 免費以自訂網域收發 Email](https://iancmd.dev/posts/computer-science/google-domains-free-email/)</content:encoded></item><item><title>My MacOS Setup</title><link>https://blog.osga.dev/posts/my_macos_setup/</link><guid isPermaLink="true">https://blog.osga.dev/posts/my_macos_setup/</guid><description> 一些我把 Mac 變很好用得雜七雜八工具</description><pubDate>Sun, 10 Aug 2025 00:00:00 GMT</pubDate><content:encoded># 歷史
從小的夢想就是想擁有屬於自己的筆電，在國中獲得第一台 MacBook Air 2017 ，中間轉轉賣賣換換，到高中變成了 razer blade 15 ， 但是 Windows 的重量和一大坨的變壓器我的肩膀真的承受不住，於是因緣際會他轉生成了桌機&lt;br/&gt;
只可惜開始接觸社群後，從龜在家裡的宅砲，變成會出門的宅砲，而且有時想再學校寫寫扣，只能用手機 ssh 回 homelab 開 Vim ，十分蛋疼，於是最終還是需要有一台筆電。

在最後的決定下入手了 MacBook Air M2 也就是跟著我到處跑的第一台筆電，但當初因為預算不多，加上有桌機可以 RDP ，所以買了最丐板的，想著應該也不常用，需要跑東西也可以 RDP 。

![MacBook Air M2 8G/256GB](MacBookAir.webp)

後面這台慢慢變成我的主力機，我發現需求越來越大，所以在 M4 一出的時候我立馬下單，升級成了 M4 MacBook Pro，而且一次就上頂一點，想著希望這台可以陪我奮鬥久一點

![MacBook Pro M4 24G/1TB](MacBookPro.webp)

這台也順理成章成為了我的主力機，直接把我的桌機搬回高雄，出門在外全靠這台

---

講那麼多廢話要開始說工具沒 zz

# 推薦小工具

用 Mac 這麼久，設定真的複雜到很多，所以先從一些小工具開始吧

![我現在在用的小工具們](tools.webp)

挑幾個主要現在在用的講

## Stats
開源的狀態監測工具，十分好用，可以顯示得資訊非常多，並且可以放在 menu bar 方便監測
![Stats](stats.webp)

&gt; 安裝連結: https://github.com/exelban/stats

## Ice
開源版的 Bartender，自從 Bartender 默默賣給中國公司之後，就不太敢在使用，尤其 Bartender 偶爾就會開始監測螢幕內容，用到心裡還是會怕怕的

某次機會 CX330 跟我推薦 Ice 這款工具，基本上 Bartender 有的 Ice 都有，而且又是開源的，更加安心

![Ice](Ice.webp)

不過他現在偶爾會有一些小 Bug ，希望之後更新能把一些 Issue 修好

&gt; 安裝連結: https://github.com/jordanbaird/Ice


## Mos 
這款是我從第一台 MacBook Air 就必裝的軟體，在  MacOS 觸控板的方向會跟滑鼠滾動方向產生一個不合理的存在

如果你要預設方式使用觸控板，你滑鼠滾動就會反向，你要習慣性的使用滑鼠，觸控板就會反向

我想這是因為 Magic Mouse 的設定關係，不過，透過 Mos 這個工具就可以解決問題

![Mos](Mos.webp)

他可以將滑鼠和處空版互相反向，達成你想要的方向，而且在 Mac 上使用一般的滾輪滑鼠，在滾動時會有卡卡的感覺，他也會模擬平滑捲動，讓體驗像是觸控板一樣

&gt; 安裝連結: https://mos.caldis.me/

## Raycast

好用的 Spotlight 工具，裝了他再也沒有開過原生 Spotlight

Raycast 很像把你日常在 Mac 上切換應用、搜尋檔案、執行指令的所有步驟，都拉到一個鍵盤可呼叫的「指令面板」裡：只要按快捷鍵、開始輸入，就能幾秒鐘內做到原本要滑鼠點個好幾下的事情。它還支援各種擴充功能（像剪貼簿歷史、控制視窗、整合 Slack／GitHub 等）讓你幾乎不用離開鍵盤就能搞定很多雜事。

![Raycast](Raycast.webp)

&gt; 安裝連結: https://www.raycast.com/

## Karabiner

可以把 Mac 上鍵盤的每一顆鍵「重製」成你想要的功能：不喜歡 Caps Lock？讓它變 Ctrl；想把某些組合鍵切換？都可以。它深入作業系統層級（比一般快捷鍵工具更底層），所以幾乎可以在任何應用裡控制鍵位。

![Karabiner](karabiner.webp)

像是我把 `fn` + `h` `j` `k` `l` 設定成了上下左右鍵，這樣我可以不用將整隻手移動到鍵盤右下角，用超小的半形方向鍵選字選方向

又或是我把 `F4` `F5` `F6` 這幾顆平時用不到，又很常誤觸的鍵設定了腳本做不一樣的動作
&lt;div class=&quot;info&quot;&gt;
	我把 F5 設回 F5 ，這樣我開 IDA 就不用再多按一顆 Fn 就能反編譯
&lt;/div&gt;

&gt; 安裝連結: https://github.com/pqrs-org/Karabiner-Elements


## Yabai
想像把你螢幕裡的視窗自動整齊排列，不用用滑鼠去拉來拉去，那麼 yabai 就是幫你在 macOS 上做到這件事的工具。它是一個「tiling window manager」（平鋪式視窗管理器），會用所謂的「binary space partitioning（BSP）」演算法，幫你依規則把新視窗分割給空間、重新調整大小、搬位置。 ￼

有點像是 Arch Linux 的 window manager

可以配上 skhd 用快捷鍵進行控制
&gt; 安裝連結: https://github.com/koekeishiya/yaba

&gt; 我的 config: https://github.com/osga24/dotfiles

## JankyBorders
可以將目前注視的視窗加上外恇，在使用 yabai 進行控制時，非常適合拿來輔助看現在到底在哪個視窗

![JankyBorders](JankyBorders.webp)

&gt; 安裝連結: https://github.com/FelixKratz/JankyBorders

# 開發環境
基本上就是 LazyVim + tmux，這部分想要先挖個坑之後再填，不然這篇會烙烙長

# 結語

主要日常會使用到比較多的工具就這些，不過大多很多好用的工具我都是在終端使用，但我覺得這可以單獨拉出來在講一個了，之後有機會再來寫

嘻嘻終於把這坑填完了，如果有一些好用的工具要交流，歡迎找我！！！</content:encoded></item><item><title>2025 SCIST MID CTF</title><link>https://blog.osga.dev/posts/scist-mid-ctf-2025/</link><guid isPermaLink="true">https://blog.osga.dev/posts/scist-mid-ctf-2025/</guid><pubDate>Tue, 18 Feb 2025 00:00:00 GMT</pubDate><content:encoded># 前言:
這次幫忙負責了兩題，分別為 `[Welcome]` 的 `CATCH THE FLAG!` ，以及 `[Web]` 的 `Vinci Code online 🛜`

題外話w，剛好季中賽時間卡到了 EOF ，原本 `CATCH THE FLAG!` 出更難，突然想到他是 `[Welcome]` 所以趕回飯店又修簡單一點XD，但最後還是被說太難了:(


# Writeup

## [Welcome] CATCH THE FLAG!
&gt; 嗨你好我是 OsGa
&gt; 
&gt; 預祝各位季中賽順利，我和 Fearnot 去打 EOF 了
&gt; 
&gt; 記得要乖乖不要壞壞ㄡ
&gt; 
&gt; FLAG 被我放在首頁的一個的地方，快去找找看ㄅ
&gt; 
&gt; `Author : OsGa`


`⛩️ HINT1. 先從首頁 https://mid.ctf.scist.org/ 開始`

`⛩️ HINT2. part2 flag in 🤖🤖🤖`

這題就是考一個很簡單的 Web Code Review

先到主頁檢查網頁
![](homepage.png)

其實他會直接出現在 console
![](console.png)

但你也可以直接從 view source code 篩選出前半段的 FLAG
![](welcome_flag_part1.png)


後半段的路徑在 `robots.txt` 裡
![](robotstxt.png)

喔對 路徑是有 base64 過的，但那不是 FLAG ，要自行切到該 page
![](urlpage.png)

進到該頁面會看到一顆按鈕，然後跑很快不管怎麼點都點不到，另外 F12 和一些可以開 Devtools 或 Source code 的 hotkey 都被禁掉了。
這是想考個為怎麼用其他方式 bypass 這些黑名單。
![](part2.png)

### 以下是幾個預期解:

- 使用瀏覽器自身控制開啟 Devtools ，然後找到按鈕 id ，用 `document.getElementById(&apos;flag&apos;).click();` 觸發。
![](arcdevtools.png)
![](console_click.png)
- URL 前面加上 `View-Source` 查看網頁原始碼的 script
![](viewsource.png)

- 用 tab 鍵選取到按鈕並且觸發
![](tab.png)


## [Web] Vinci Code online 🛜
因為剛好那陣子有幫 SCIST 寒訓寫一個活動計分版，那時候有研究了下 WebSocket ，想到可以來簡單出一下

這是一個猜數字的網站，只有三次機會，Range 0~10000，就是希望你去找問題不是盲猜w
![](game.png)

題目有提供兩個後端的 JS ，可以在裡面發現有後門

在 `index.js` 裡可以發現有一個 type 叫 `backdoor`
```js
if (data.type === &apos;guess&apos;) {
    response = room.gameRoom.guess(data.number);
} else if (data.type === &apos;backdoor&apos;) {
    response = room.gameRoom.getSecretAnswer(data.command);
} else {
    response = { status: &apos;error&apos;, message: &apos;Invalid message type&apos; };
}
```

到 `gameRoom.js` 可以看到怎麼呼叫他
```js 
getSecretAnswer(command) {
    if (command === &apos;SHOW_ME_THE_ANSWER_PLZ&apos;) {
        return { status: &apos;secret&apos;, answer: this.answer };
    }
}
    return { status: &apos;error&apos;, message: &apos;Invalid command&apos; };
```

### 兩個預期解:
- 透過 `wscat` 發送 `WebSocket` 請求
![](wscat.png)

- 用 burp 攔截然後改請求，之後直接將答案輸入在網頁上
![](burp.png)
![](respond.png)
![](ans.png)


以上就是這次季中賽的題解，感謝各位參與，祝福各位都能參與下學期社課並持續在資安這條路前進，季末賽見。
如有任合問題歡迎到 DC 開單或私訊詢問我！</content:encoded></item></channel></rss>