ddaa's blog
Write-ups for CTF.
ddaa's blog

honeyme 2015 CTF CVE-2015-3306

Other CTF , CVE

Share Tweet Share

這次比賽前一天好像吃壞肚子...
結果隔天遲到 將近 12 點才到會場
很擔心會不會到現場題目已經被 Orange 解光了 (誤
還好還是有解貢獻一點分數 XD


honeyme 是採 King of the Hill 的賽制
參賽隊伍要想辦法把主機首頁給換掉
寫進自己的 token
就可以有源源不絕的分數了~

其中 ip .194 這台主辦方出的漏洞是利用 CVE-2015-3306
一個 Proftpd 的邏輯漏洞
Proftpd 啟用 mod_copy 模組的請況下
允許攻擊者在尚未認證的情況下任意對檔案進行讀寫
可以用以下的程式碼驗證 ftp server 是否存在漏洞:

220 ProFTPD 1.3.4a Server (ProFTPD Default Installation) [127.0.0.1]
SITE cpfr /etc/passwd
350 File or directory exists, ready for destination name
SITE cpto /tmp/gg
250 Copy successful

這個漏洞其實第一天就發現了
可是當時不知道是主辦方刻意還是設定失誤
導致 ftp server 所在的 filesystem 是 Read-only
試了半天還是沒辦法成功利用 到第二天卻又修復了...
一開始想直接拿 exploitdb 的 payload 來攻擊主機
可是失敗了...似乎是因為 sockfd 不是 3
但是直接用 metasploit 會成功
只是我對 metasploit 其實不是很熟
一直沒辦法建立 reverse shell 回來 = =
只好去 trace 兩邊的 payload 差別在哪裡

兩份最大的差別是
metasploit 取得 input 的檔案是 /proc/self/cmdline
比起從 /proc/self/fd/3 好用多了
雖然會把當前指令也寫進檔案
但是反正我們要寫的是網頁
把多餘的指令註解掉就行了
話說 trace msf 以後才知道原來是用 ruby 寫的...
跟 ruby 不太熟不知道要怎麼拿來直接執行
只好重寫一份 payload
上傳了 php 後門以後
剩下就交給 Orange 了 XDD

完整 payload: exploit


由於去年 honeyme 剛好跑去韓國打 secuinside
無從比較題目是否有進步 XD
難易度跟一般國際賽的 CTF 比起來的確有些差距
不過也沒有到賽前打聽的那麼悽慘 XD
大概跟大陸那邊 xctf 一些比較小的聯賽差不多水準吧
然後誠心建議不要有太多猜謎阿~
比賽時間很短的 讓大家專注在技術上就好了 QQ

最後特別感謝有 Orange 一起參加
這次 Bamboofox 參賽其實主要目的是想培育新人
但是我是 web 智障阿 QQQQ
還好有 Orange Carry 全場 XD
兩天下來默默地學了不少 web 的技巧
衷心希望下次 CTF 可以解出 web 題...
打了兩年 CTF, web write-up 至今只有兩篇 囧