用dvwa做文件包含漏洞时页面显示The php function allow_url_include is not enabled是什么原因

用dvwa做文件包含漏洞时页面显示The php function allow_url_include is not enabled,然后用浏览器访问一个url地址显示请求的页面不存在,该怎么办?

  • 你可以参考下这篇文章:关于解决dvwa中的The PHP function allow_url_include is not enabled.问题
  • 除此之外, 这篇博客: DVWA文件包含报错The PHP function allow_url_include is not enabled.的解决方法中的 前言 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 在这里插入图片描述
        打开File Inclusion,发现红色报错内容
    The PHP function allow_url_include is not enabled.(PHP函数allow_url_include未启用)。

  • 以下回答由chatgpt基于相关博客总结生成:

    首先,根据参考资料中的提示,我们需要找到并修改php.ini文件中的allow_url_include和allow_url_fopen的值为On。

    1. 在命令行中输入以下命令,查找php.ini文件的位置:

      find -name php.ini
      

      这将会列出所有php.ini文件的位置。

    2. 找到php.ini文件后,使用文本编辑器打开该文件。

    3. 在php.ini文件中,搜索allow_url_include和allow_url_fopen这两个配置项。

    4. 将它们的值改为On:

      allow_url_include = On
      allow_url_fopen = On
      
    5. 保存并关闭php.ini文件。

    6. 重启Apache服务,使配置生效。

      如果你使用的操作系统是Windows,默认的Apache服务名称为“Apache2.4”,可以在服务管理器中找到并重启它。

      如果你使用的操作系统是Linux,可以使用以下命令重启Apache服务:

      sudo service apache2 restart
      

      如果你使用的操作系统是Mac,可以使用以下命令重启Apache服务:

      sudo apachectl restart
      
    7. 确保修改已生效,可以通过访问一个URL来验证。浏览器中访问一个URL时不再显示"请求的页面不存在"的错误提示,即表示配置已成功生效。

    如果按照以上步骤操作后问题仍未解决,请提供更多详细信息或尝试其他解决方案来解决问题。

DVWA中文件包含漏洞默认是关闭的,需要打开php.ini中的allow_url_include配置,将allow_url_include设置为On,重启或刷新DVWA以致生效

DVWA文件包含报错The PHP function allow_url_include is not enabled.的解决方法

一样的问题,

一、修改php配置文件
    /etc/php/7.4/apache2/ 文件夹

cd /etc/php/7.4/apache2/

用文档编辑器打开 ‘’ php.ini ‘’ 文件

vi php.ini

 ‘‘allow_url_include=Off’’ 改为 ‘‘allow_url_include=On’’
  ‘‘display_errors=Off’’ 改为 ‘‘display_errors=On’’

二、重启mysql和apache服务
service mysql restart
service apache2 restart

   刷新一下dvwa,成功解决!

启用PHP配置中的allow_url_include选项试试

可通过如下方式解决这个问题:
修改php配置文件
cd /etc/php/7.4/apache2/
用文档编辑器打开 ‘’ php.ini ‘’ 文件
‘‘allow_url_include=Off’’ 改为 ‘‘allow_url_include=On’’
‘‘display_errors=Off’’ 改为 ‘‘display_errors=On’’

没有启用allow_url_include函数

;extension=php_mbstring.dll
;extension=php_gd2.dll
;extension=php_curl.dll
;extension=php_xmlrpc.dll
;extension=php_soap.dll
;extension=php_intl.dll
;extension=php_bcmath.dll
;extension=php_com.dll
;extension=php_ldap.dll
;extension=php_mysqli.dll
;extension=php_mysql.dll
;extension=php_pdo.dll
;extension=php_sybase.dll
;extension=php_mssql.dll
;extension=php_sqlite3.dll
;extension=php_pgsql.dll
;extension=php_odbc.dll
;extension=php_mysqli.dll
;extension=php_mysql.dll
;extension=php_pdo_mysql.dll

在php.ini文件中添加以下行:

allow_url_include = On

保存并关闭文件。

引用chatgpt内容作答:
在使用DVWA(Damn Vulnerable Web Application)时遇到文件包含漏洞,可能会出现两个常见问题:

1、"The php function allow_url_include is not enabled" 错误提示:这表示你的PHP配置禁用了allow_url_include功能,这样就无法通过URL远程包含文件。这是为了防止安全风险。要修复此问题,你需要修改PHP配置文件(php.ini)并启用allow_url_include。
解决步骤:
a. 找到你的PHP配置文件 php.ini,一般在PHP安装目录下。
b. 在文件中搜索allow_url_include,找到该行。
c. 将 allow_url_include 的值改为 On。如果该行不存在,你可以手动添加 allow_url_include = On。
d. 保存文件并重新启动你的Web服务器(例如,Apache或Nginx)以使更改生效。

2、"请求的页面不存在" 错误:这可能是你在尝试远程包含文件时提供了一个无效的URL地址,导致服务器无法找到该页面。
解决步骤:
a. 确保你提供的URL地址是有效的,并且可以通过浏览器访问该页面。
b. 如果你的URL地址是相对路径,确保它指向正确的文件位置。
c. 检查URL地址中是否有任何错误,例如拼写错误或错误的参数。

如果你在解决上述问题后仍然遇到困难,可以仔细检查DVWA的设置和用法,确保正确配置了漏洞环境。还要注意,使用DVWA进行漏洞测试是合法且有教育目的的活动,但在真实环境中进行漏洞利用是非法的且可能会导致严重后果。

来自GPT的回答:

The php function allow_url_include is not enabled" 是由于在 PHP 配置中禁用了 allow_url_include 函数导致的。这个函数是 PHP 的一个安全特性,用于控制是否允许在文件包含时使用远程 URL。

在 DVWA(Damn Vulnerable Web Application)中,当你尝试利用文件包含漏洞时,系统会检查 allow_url_include 的状态。如果它被禁用,就会显示上述错误消息。

如果你想继续进行文件包含漏洞的测试,你需要打开 allow_url_include 函数。这可以通过修改 PHP 配置文件(php.ini)来实现。请按照以下步骤进行操作:

找到你的 PHP 配置文件(php.ini)。它通常位于 /etc/php.ini 或者 /etc/php/<version>/php.ini。

使用文本编辑器打开 php.ini 文件。

在文件中查找 allow_url_include 项。如果没有找到,可以手动添加以下行:

graphql
Copy code
allow_url_include = On
保存并关闭文件。

重新启动你的 Web 服务器,以使修改生效。

完成上述步骤后,allow_url_include 函数将被启用,你应该能够继续进行文件包含漏洞的测试。

至于你提到的浏览器访问一个 URL 地址显示请求的页面不存在的问题,可能是因为你提供的 URL 地址无效或不存在。请确保你提供的 URL 是正确的,并且目标页面实际存在。如果问题仍然存在,请检查网络连接或者与目标页面相关的其他问题。