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/"