Apache HTTPサーバーの脆弱性CVE-2021-41773を利用したパストラバーサル攻撃を仮想環境で検証している際に、ターゲットサーバーに対してcurlコマンドを使っても404 Not Foundエラーが返ってくる場合、いくつかの原因が考えられます。この問題を解決するための手順と確認事項について解説します。
1. 脆弱性の確認
まず、Apache HTTPサーバーのバージョンが脆弱であることを確認する必要があります。CVE-2021-41773は、Apache HTTPサーバー2.4.49で発見されたパストラバーサル脆弱性で、CGIを利用することで、攻撃者がサーバー内の任意のファイルにアクセスできてしまう問題です。この脆弱性が悪用されると、ファイルの内容を盗み出したり、システムに不正アクセスが可能になる可能性があります。
まずは、ターゲットサーバーで実行されているApacheのバージョンが2.4.49であることを確認しましょう。もし、バージョンが異なっている場合は、脆弱性が存在しない可能性があります。
2. CGI設定の確認
CGI(Common Gateway Interface)が有効になっている場合、ターゲットサーバーで攻撃を試みる前に、CGI設定が正しく行われているかを確認する必要があります。具体的には、Apacheの設定ファイルでCGIが有効になっていることを確認しましょう。設定ファイルは通常、/etc/apache2/sites-available/や/etc/httpd/conf.d/のディレクトリ内に存在します。
CGIが無効になっている場合、攻撃を仕掛けても予期しない動作が発生するため、攻撃者が意図した動作を実行できません。
3. Apacheのエラーログを確認する
ターゲットサーバーのApacheエラーログを確認することで、攻撃が失敗している原因を特定できる場合があります。エラーログには、404エラーやその他のエラーコードが記録されるため、ログの内容を分析することが有益です。
例えば、エラーログに「File does not exist」や「Permission denied」などのメッセージが表示される場合、パストラバーサル攻撃が適切に実行されていない理由が分かります。
4. 攻撃の手順を再確認
攻撃を行う際の手順が正しいかどうかも再確認しましょう。たとえば、curlコマンドで攻撃対象のパスを指定する際、パスの表記方法に誤りがないかを確認してください。パストラバーサル攻撃では、特定のファイルパスを直接指定することが重要です。
また、攻撃対象のファイルが正しく設定されていない場合や、パーミッションの設定に問題がある場合、攻撃は失敗することがあります。そのため、ターゲットシステムのファイルアクセス権限も確認しましょう。
5. まとめ
CVE-2021-41773に関するパストラバーサル攻撃の検証時に、404エラーが発生する場合、いくつかの要因が考えられます。Apacheのバージョン、CGIの設定、エラーログ、攻撃手順を再確認することで、問題を解決できることが多いです。上記の手順を順に確認し、再度攻撃を試みることで、成功する可能性が高まります。


コメント