Webアプリケーションの脆弱性を、簡単に試すのにいい方法ないかなと思う人向け
脆弱なWebアプリケーションのテストをするためにOwaspbwaなどといった仮想環境を構築する方法もありますが、もっと簡単にテストできる環境をぱっと作ります。テストするとよりかは大きな脆弱性10個について確認できるだけのアプリケーションですが...
OWASP Top10とは
OWASP(Open Web Application Security Project)は、Webアプリケーションのセキュリティに関するオープンソースのコミュニティで、OWASP Top10は、最も重要なWebアプリケーションの脆弱性について解説したドキュメントです。
その10個の脆弱性について簡単に試すことができるWebアプリケーションを自分のローカル環境に構築します。(Security_Ninjas_AppSec_Training)
手順
php.ini
がローカル環境のどこにあるのか php -info | grep php.ini
で確認しておきます。Macではデフォルトで、 php.ini
ではなく php.ini.default
が /etc/
にあるので以下のようにしています。他の場所にphp.ini
がある場合は、適宜パスを変えて sudo cp /etc/php.ini /etc/php.ini.orig
などとバックアップをしておいてください。
mkdir ~/owasp && cd ~/owasp
git clone https://github.com/opendns/Security_Ninjas_AppSec_Training.git
cd Security_Ninjas_AppSec_Training
sudo cp php.ini /etc/
sudo mkdir /Library/WebServer/Documents/test/
sudo cp -R src/Final/* /Library/WebServer/Documents/test/
sudo chmod 777 /Library/WebServer/Documents/test/*.txt
sudo apachectl start
この後、ブラウザでlocalhost/test/を開くと以下のようになります。XSSの確認を行うにはGoogle ChromeはデフォルトでXSS Auditorをオンにしているので、それをオフに切り替えるか、Firefoxで開くと良いでしょう。
10個のタブが出てきてそれぞれが異なる脆弱性を持つので自分で脆弱性についてテストすることができます。
HintとSolutionがあるのでそれを見るとOWASP Top10の脆弱性がイメージできると思います。
テストが終わったら
sudo apachectl stop
sudo rm /etc/php.ini
#もしphp.iniがもとからあってバックアップをしたならそれをphp.iniに戻します.
rm -rf /Library/WebServer/Documents/test/
サーバーを止めてディレクトリごと消しておきます。