HITCON CTF 2016 已經出來了。現在可以在 Github 的 Orange 大大的帳號中的 repo 找的到。這是其中一題的重現環境的 server 建置
首先,要先有一台 server (或是使用 VPS) 接著上面已經安裝好 LAMP stack (或PHP + Apache) 推薦的 Linux Distribution 為 Ubuntu 14.04 LTS
接著到專案的網址:把 repository clone 回來。
git clone https://github.com/orangetw/My-CTF-Web-Challenges.git
接著,把目錄 hitcon-ctf-2016/papapa/ 底下的移到 server 上,並修改 /etc/apache2/sites-available/000-default.conf
下面的設定檔將專案中的 default-ssl.conf 整併到 000-default.conf
sudo vi /etc/apache2/sites-available/000-default.conf
修改的範例檔如下:
# 基本上,前面的 80 port 是都不用更改的,使用預設的設定就好。
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin webmaster@localhost
ServerName your-ip-address
DocumentRoot /var/www/html/papapa
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /path/to/crt-file
SSLCertificateKeyFile /path/to/key-file
SSLCACertificateFile /path/to/crt-file
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
<Directory "/var/www/html">
AllowOverride All
</Directory>
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
# MSIE 7 and newer should be able to use keepalive
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
</VirtualHost>
<VirtualHost *:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/secret/
ServerName very-secret-area-for-ctf.orange.tw
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /path/to/crt-file
SSLCertificateKeyFile /path/to/key-file
SSLCACertificateFile /path/to/crt-file
<Directory /secret/>
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
# MSIE 7 and newer should be able to use keepalive
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
</VirtualHost>
</IfModule>
設定完成之後,在 /var/www/html 的目錄下建立一個 secret 的目錄並把 index-secret.php 放到此目錄中。
重啟 Apache service
sudo service apache2 restart
接著:開始攻擊(?
開始攻擊時,先想辦法拿到:very-secret-area-for-ctf.orange.tw 這個網域名稱。
可以從主控台看到類似這樣的憑證圖示:
接著使用 cURL
curl -k -H "Host: very-secret-area-for-ctf.orange.tw" "https://your-ip-address/"