rss-functions.phpでの完全パスの開示


8

WordPressアプリでセキュリティテストを実行していたところ、すべてのアプリで次のURLのフルパスが公開されていました。これは以前に回答されたと思いますが、これに関する情報は見つかりません。

https://mydomains.com/wp-includes/rss-functions.php

リンクに移動したときのエラーメッセージは、8行目の/home/mydomain/public_html/wp-includes/rss-functions.phpのCall to undefined function _deprecated_file()です

RSSのテーマには何もありません。

編集:さらなる調査の後、これはほとんどのWordPressサイトで一般的な問題のようです。オンラインで見つけた解決策は実際にはエラーを修正しません。php.iniでエラー報告を非表示にするだけです。ただし、ホスティングの状況によっては、誰もがphp.iniにアクセスできるわけではありません。


これはセキュリティ上の問題ではありません。
fuxia

4
私はあなたに同意しません。完全なパスは、攻撃者にとって非常に貴重な情報です。
JediTricks007 2015

ファイルのアクセス権が正しく設定されていることを確認してください。その情報は、それらのアクセス権を持たない人には役に立ちません。ローカルパスを公開することでサイトが脆弱になると、はるかに重要な問題が発生します。
fuxia

2
ファイルの権限が正しく設定されています。私はこれを見せたくないし、それが正当な懸念であると思う。私が自分のサイトの完全なパスを見つける簡単な方法を防ぐことができれば、それは良いことだと思います。owaspによると、一部の攻撃では、攻撃者が表示したい完全なパスを知る必要があります。したがって、その情報を攻撃者に見せないことが重要です。
JediTricks007 2015

回答:


5

wp-includesディレクトリ内のPHPファイルは、外部からアクセスできないようにする必要があります。ワードプレスコードによってのみインクルードする必要があります。したがって、これに対する簡単な修正は、.htaccessルールを使用して、wp-includesディレクトリの下にある* .phpファイルへのアクセスをブロックすることです。


1
そのような.htaccessの例を挙げられますか?
ルーカスブスタマンテ2018

1

これは、PHPのエラー/警告ログを無効にするための、事実上唯一のオプションです。それを行うには2つのオプションがあり、あまり良くない別のオプションがあります:

  • php.ini-ほとんどのホスティングでphp.iniを変更できます(共有ホスティングでも)-.htaccess
  • PHPファイルで直接(非推奨)

http://phphtml.info/how-to-fix-wordpress-internal-pathfull-path-disclosurefpd-issue/


0

本番ウェブサイトではDisplay_errorsを無効にする必要があります。

WP Scanはwp-includes/rss-functions.php直接アクセスしますが、これはWordPress 4.9.7以降のソースコードです。

<?php
/**
 * Deprecated. Use rss.php instead.
 *
 * @package WordPress
 */
_deprecated_file( basename(__FILE__), '2.1.0', WPINC . '/rss.php' );
require_once( ABSPATH . WPINC . '/rss.php' );

直接アクセスすると_deprecated_file()関数が存在しないため、致命的なエラーがスローされます。

解決策はdisplay_errors、サーバーレベルで無効にすることです。PHPがmod_apacheで実行されている場合は、次の行をメインの.htaccessファイルに追加することで実行できます。

php_flag display_errors off

PHP-FPMを使用する場合は、おそらくローカルのpublic_htmlフォルダーにあるphp.iniをオーバーライドする必要があります。

また、WordPressは次のことも認識しています。

https://make.wordpress.org/core/handbook/testing/reporting-security-vulnerabilities/#why-are-there-path-disclosures-when-directly-loading-certain-files


-1

理論的には、あなたが「適切なWordpressの方法」で物事を行っている場合、私があなたに伝えようとしていることは危険であり、おそらく行われるべきではありません。

実際には、これは本番環境で機能します。

ファイルrss-functions.phpは廃止され、にリダイレクトされrss.phpます。

このファイルrss.phpはv3.0.0以降廃止されており、内部コメントでは代わりにSimplePieを使用することを推奨しています。

ファイルはのでrss-functions.php安全に削除することができます限り、このファイルに依存して何のプラグインを持っていない場合は、古い、レガシーインストールを持っている、としません。

または、そのファイルの行8をコメント化します。


セキュリティの観点から、このファイルはブラウザから直接ヒットされることを意図していないため、上記の@MarkKaplunの提案も確実に実装する必要があります。


ところで、フルパスを漏らすことはセキュリティリスクであることに同意します。そのため、カスタムパスにWEBROOTを配置しません。


2
良くも悪くも、コアファイルの削除または変更は決して解決策ではありません。
Mark Kaplun、2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.