Pengungkapan path lengkap pada rss-functions.php


8

Saya sedang menjalankan beberapa uji keamanan pada aplikasi WordPress saya dan memperhatikan bahwa semuanya memiliki pengungkapan jalur lengkap pada url berikut. Saya yakin ini telah dijawab sebelumnya tetapi saya tidak dapat menemukan informasi tentang ini.

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

Pesan kesalahan saat membuka tautan adalah Panggil ke fungsi yang tidak ditentukan _deprecated_file () di /home/mydomain/public_html/wp-includes/rss-functions.php on line 8

Saya tidak memiliki apapun dalam tema saya untuk RSS.

Sunting: Setelah penelitian lebih lanjut, ini tampaknya menjadi masalah umum di sebagian besar situs WordPress. Solusi yang saya temukan online sebenarnya tidak memperbaiki kesalahan. Mereka hanya mengatakan untuk menyembunyikan pelaporan kesalahan di php.ini. Itu tidak memperbaikinya dan tidak semua orang memiliki akses ke php.ini tergantung pada situasi hosting mereka.


Ini bukan masalah keamanan.
fuxia

4
Saya tidak setuju dengan Anda. Jalur lengkap adalah informasi yang sangat berharga bagi penyerang.
JediTricks007

Pastikan saja izin file diatur dengan benar, dan informasi itu tidak berguna bagi siapa pun tanpa izin itu. Jika situs Anda rentan dengan mengekspos jalur lokal, Anda memiliki masalah yang jauh lebih penting.
fuxia

2
Izin file saya diatur dengan benar. Saya tidak ingin ini menunjukkan dan berpikir itu adalah masalah yang sah. Saya pikir jika saya dapat mencegah cara mudah untuk menemukan path lengkap situs saya, itu adalah hal yang positif. Menurut owasp beberapa serangan membutuhkan penyerang untuk mengetahui jalur lengkap yang ingin mereka lihat. Jadi tidak menunjukkan bahwa informasi kepada penyerang itu penting.
JediTricks007

Jawaban:


5

File PHP di direktori wp-include tidak boleh diakses dari luar, mereka hanya boleh dimasukkan oleh kode wordpress. Karenanya perbaikan yang mudah adalah dengan menggunakan aturan .htaccess untuk memblokir akses ke file * .php yang berada di bawah direktori wp-include


1
Bisakah Anda memberi contoh .htaccess tersebut?
Lucas Bustamante


0

Display_errors harus dinonaktifkan di situs web produksi.

WP Scan mengakses wp-includes/rss-functions.phplangsung, dan ini adalah kode sumbernya, pada 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' );

Ketika diakses secara langsung, _deprecated_file()fungsi tidak ada, sehingga melempar kesalahan fatal.

Solusinya adalah menonaktifkan display_errorsdi tingkat server. Jika PHP Anda berjalan di bawah mod_apache, Anda dapat melakukannya dengan menambahkan baris ini ke file .htaccess utama Anda:

php_flag display_errors off

Jika Anda menggunakan PHP-FPM, Anda mungkin akan menimpa php.ini di folder public_html lokal Anda.

Juga, WordPress menyadari hal itu:

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


-1

Secara teoritis, apa yang akan saya katakan adalah berbahaya dan mungkin tidak boleh dilakukan, jika Anda melakukan hal-hal dengan "cara Wordpress yang tepat".

Secara praktis , ini berfungsi untuk lingkungan produksi kami.

File rss-functions.phpsudah usang, dan dialihkan ke rss.php.

File rss.phptelah ditinggalkan sejak v3.0.0, dan komentar internal menyarankan Anda menggunakan SimplePie sebagai gantinya.

Jadi file tersebut rss-functions.phpdapat dihapus dengan aman selama Anda tidak memiliki instalasi lawas yang lama, dan jika Anda tidak memiliki plugin yang bergantung pada file ini.

Atau, komentari baris 8 di file itu.


Dari sudut pandang keamanan, Anda juga harus menerapkan saran @ MarkKaplun di atas, karena file ini tidak dimaksudkan untuk dipukul langsung oleh browser.


BTW, saya setuju dengan Anda bahwa mengungkapkan jalan penuh adalah risiko keamanan; kami mencegah WEBROOT di jalur khusus untuk alasan itu.


2
untuk lebih baik dan lebih buruk, menghapus atau mengubah file inti tidak pernah merupakan solusi.
Mark Kaplun
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.