概要
OWASPというソフトウェアセキュリティに関するボランティアグループが公表しているWebアプリケーションにおける10個の重要な脆弱性を組み込んだサーバーに対して攻撃を行います。
「教科書」には載っていないルームだったのでわからない部分は次のページを参考にさせていただきました。
10個の脆弱性
それぞれの脆弱性について簡単に説明します。原因や対策などは書いていくと量が多くなるので、ググるなりAIに聞いてもらえればと思います。(^^;;
-
Broken Access Control
ユーザーのアクセス制御が適切に行われていない脆弱性です。
TryHackMeではInsecure Direct Object Referenceが例として挙げられています。 -
Cryptographic Failurers
暗号化やハッシュ化などの暗号技術を不適切に使用することで発生する脆弱性です。
TryHackMeではSQLiteのデータベースファイルがルートフォルダにあると、そのファイルをダウンロードして中身を見ることができることを説明しています。 -
Injection
ユーザーが入力したデータを特定のコマンドやクエリの一部として実行することでアプリケーションが実行することに起因する脆弱性です。
TryHackMeではコマンドインジェクションの使用例を説明しています。 -
Insecure Design
アプリケーション設計時にセキュリティに関する考慮が足りなかったために発生する脆弱性です。
TryHackMeではInsecure Password Resetを使用して説明しています。 -
Security Misconfiguration
アプリケーションやアプリケーションが使っているサービス、ライブラリの設定値がセキュリティレベルの低い設定になっていることで起きる脆弱性です。
TryHackMeではデバッグ機能を無効にすることを忘れた例を説明しています。 -
Vulnerable and Outdated Components
アプリケーションが使用するOSSやライブラリ、またはOSなどに含まれる問題によって引き起こされる脆弱性です。
TryHackMeでは古いバージョンの"nostromo web server"に対する攻撃を説明しています。 -
Identification and Authentication Failures
アプリケーションがユーザーを正しく識別できなかったり、認証プロセスが不適切な場合に発生する脆弱性です。
攻撃者は正規のユーザーになりすましたり、アカウントを乗っ取ることができます。
TryHackMeではユーザー名がサニタイズされないため、同名(?)ユーザーが登録される脆弱性を説明しています。(この説明あってる?) -
Software and Data Integrity Failures
アプリケーションが使用するソフトウェアやデータが正しくないことで発生する脆弱性です。
TryHackMeではJQueryのサイトを改ざんすることで不正なJQueryを使用したり、Cookieを改ざんしてadminユーザーになりすます方法を説明しています。 -
Security Logging and Monitoring Failures
セキュリティ関連のログを適切に記録・監視していないことで発生する脆弱性です。
TryHackMeではログファイルを分析して問題を解決する方法を説明しています。 -
Server-Side Request Forgery
攻撃者が指定した任意のURLに対してリクエストを送信させることができる脆弱性です。
TryHackMeではデータのダウンロード先を変更する方法を説明しています。
また、adminエリアのアクセスについては次に動画を参考にさせていただきました。
まとめ
脆弱性がたくさんありすぎて、これを潰していくのはたいへんだなと思いました。