良い一日、ウェブ開発者!今日は、Webアプリケーションのセキュリティのレッスンを教える非常に便利なアプリケーションについて説明します。 WebGoatに挨拶します 、意図的に安全でないWebアプリケーション OWASPによって開発されました 、実践的な演習でリアルタイムで一般的なWebアプリケーションの欠陥を修正する方法を教えることを目的としています。このアプリケーションは、アプリケーションのセキュリティと侵入テストの手法について学びたい人にとって非常に便利です。
注意事項: WebGoatは純粋に教育目的です 。これにより、システムは攻撃者に対して非常に脆弱になります。したがって、ローカルエリアネットワークの仮想マシンで使用することをお勧めします。テストマシンをインターネットに接続しないでください。警告されました!
WebGoatをデプロイする方法
WebGoatは、Dockerを使用して、またはスタンドアロンアプリケーションとしてデプロイできます。純粋に学習と教育を目的としているため、Dockerで使用することを好みます。
Dockerを使用してWebgoatをインストールする
Dockerをまだインストールしていない場合は、次のリンクを参照してインストールしてください。
- CentOSにDockerをインストールする方法
- UbuntuにDockerをインストールする方法
Dockerをインストールした後、次のコマンドを実行してWebGoatをデプロイします。
$ docker run -it -p 127.0.0.1:80:8888 -p 127.0.0.1:8080:8080 -p 127.0.0.1:9090:9090 -e TZ=Asia/Kolkata webgoat/goatandwolf:v8.2.2
上記のコマンドでタイムゾーンを自分のものに置き換えます。
このコマンドは、最新のWebGoat Dockerイメージをプルし、WebGoatインスタンスとwebwolfインスタンスを数分で起動します。開始すると、次のような出力が表示されます。
[...] 2017-12-05 11:22:50,132 INFO - FrameworkServlet 'mvc-dispatcher': initialization completed in 533 ms 2017-12-05 11:22:50,171 INFO - Initializing main webgoat servlet 2017-12-05 11:22:50,173 INFO - Browse to http://localhost:8080/WebGoat and happy hacking! Dec 05, 2017 11:22:50 AM org.apache.coyote.http11.Http11Protocol start INFO: Starting ProtocolHandler ["http-bio-8080"]を開始しています
Dockerイメージが起動すると、次のURLでランディングページ、WebGolf、およびWebWolfインターフェイスにアクセスできます。
- ランディングページ-
http://localhost
- WebGoatダッシュボード-
http://localhost:8080/WebGoat
- WebWolfインターフェース-
http://localhost:9090/WebWolf
Webgoatをスタンドアロンアプリケーションとしてインストールする
Javaがインストールされていることを確認してください 。次に、リリースページから最新のWebGoatバージョンをダウンロードします。 。
最後に、以下に示すようにWebGoatを起動します。
$ java -Dfile.encoding=UTF-8 -jar webgoat-server-8.2.2.jar [--server.port=8080] [--server.address=localhost] [--hsqldb.port=9001] $ java -Dfile.encoding=UTF-8 -jar webwolf-8.2.2.jar [--server.port=9090] [--server.address=localhost] [--hsqldb.port=9001]>
次に、脆弱性を修正します。前述したように、インターネットを使用する前にインターネットを切断してください。
WebGoatを使用してWebアプリケーションの欠陥をリアルタイムで修正する方法
Webブラウザーを開き、 http:// localhost:8080 / WebGoatに移動します。 またはhttp:// IP-address:8080 / WebGoat 。次の画面が表示されます。
ログイン: webgoat / webgoat 。これは管理者ログインです。通常のユーザーアカウントを使用することもできます:ゲスト/ゲスト 。

これで、WebGoatの概要セクションに移動し、WebGoatを使用してWebアプリケーションの一般的な欠陥や脆弱性を修正する方法に関するさまざまな手順を説明します。

ご覧のとおり、左側のペインには多くのレッスンカテゴリがあります。カテゴリをクリックすると、含まれているレッスンが表示されます。
たとえば、インジェクションの欠陥->コマンドインジェクションを選択します。 レッスンプラン。

ご覧のとおり、選択したレッスンには5つのタブがあります。
- ソースを表示 -これにより、基盤となるJavaソースコードが表示されます。
- ソリューションを表示 -これにより、選択したレッスンの完全な解決策が表示されます。
- プランを表示 -これにより、レッスンの目標と目的が示されます。
- ヒントを表示 -これにより、レッスンを解決するための技術的なヒントが表示されます。
- レッスンを再開 -レッスンを再開したい場合は、このリンクを使用できます。
各レッスンをクリックしてレッスンを解いてみてください。必要に応じて、ヒントを使用してください。ヒントを使用してレッスンを解決できない場合は、解決策を表示して詳細を確認してください。