---
# System prepended metadata

title: CTF期末練習題

---

# CTF期末練習題 
contributed by < [ctc2324](https://github.com/ctc2324) >
:::info
題目來自國立成功大學電機所開設課程-網路安全(Network Scurity，NS)上課教材。
:::
## WEB-Cookie monseter

題目網站：http://140.116.164.137:8080/cookiemonster/ (已不可用)

題目會有一個網站，需要輸入帳號密碼才可 access。
但可以透過 `ctrl+U` 打開網頁原始碼，搜尋password可發現測試用帳密：
```
<div class="wrap-input100 validate-input" data-validate = "Account">
						<input class="input100" type="text" name="acc">
						<span class="focus-input100" data-placeholder="Account"></span>
<!-- testing account: keroro-->
					</div>

					<div class="wrap-input100 validate-input" data-validate="Enter password">
						<span class="btn-show-pass">
							<i class="zmdi zmdi-eye"></i>
						</span>
						<input class="input100" type="password" name="pass">
						<span class="focus-input100" data-placeholder="Password"></span>
<!-- testing password: keroro123-->
					</div>
```

可以得知帳號為：keroro，密碼為:keroro123。
登入後會顯示用戶權限不足，必須將使用者權限更改為admin。
右鍵點選檢查，在 `console` 的地方輸入指令：
```c
document.cookie="level=admin";
```
重新整理後便可得到FLAG，此題結束。

## Crypto-你的個資是安全的

題目提供一加密壓縮檔，並且提示密碼為身分證字號，該檔案主人為金門男性。由此提示可得知密碼為10位，並且密碼為W1XXXXXXXX。後8碼皆為數字。
鎖定目標後，就可以透過暴力破解法進行破解。
此處使用 **Fcrackzip** 工具來進行暴力破解，並且透過自行產生密碼本的方式破解密碼。
在LINUX系統下(本實驗使用Ubuntu)
```
~$ sudo apt-get install fcrackzip
```

撰寫簡單C語言程式產生密碼本 `pass.txt`
```clike=
#include <stdio.h>
#include <stdlib.h>

int main(){
    
    FILE *fptr;
    fptr = fopen("pass.txt","w");
 
    for(int i=0;i<100000000;i++)
        fprintf(fptr,"W1%08d\n",i);

    fclose(fptr);

    return 0;int i=0;
}
```
輸入指令：
```
~$ sudo fcrackzip -D -p pass.txt -u text.zip
```
經過一段時間後便可得到：
```


PASSWORD FOUND!!!!: pw == W1XXXXXXXX
```
使用密碼解開壓縮檔後可以打開裡面的TXT檔並獲得FLAG，此題結束。

## MISC-初出茅廬
題目給了一段密碼：
```
TkNLVUVFe0tJQ0tfT0ZGfQ==
```
使用BASE64解碼可以得到FLAG，此題結束。

## MISC-讀心安妮亞

題目給了一張安妮亞的pdf檔，打開後僅看到安妮亞，沒有FLAG的蹤跡。
此題可透過將PDF以文字編輯器打開來破解，此處使用Notepad++。
打開後搜尋特定單字，便可在尾端發現FLAG，此題結束。

## MISC-KP
此題提供一張KP.PNG。
可以將此圖片解壓縮來獲得FLAG，此題結束。

## Packet-封包分析

## Packet-封包分析II
題目給了約2000個封包的封包檔，在linux系統下打開wireshark可以看到所有封包的資訊，但封包過多所以無從下手尋找FLAG。

此時可以透過搜尋PNG 或 JPG 的方式來尋找特別的圖片。![](https://hackmd.io/_uploads/ry5S5gUPh.png)

但可以發現還是大約有2-30個封包，不太可能一個一個看，但仔細觀察會發現有一個封包的來源端為內網，可以推測為出題者串入來當flag的封包圖檔。

鎖定這個封包後，打開來後點選 `show packet Bytes` 可以得到裡面傳送的圖片。
![](https://hackmd.io/_uploads/SJnMseUwh.png)

![](https://hackmd.io/_uploads/BJ28jxLw2.png)
打開後出現FLAG的圖片，此題結束。
