phpMyAdmin-4.8.1文件包含漏洞

admin 2023年8月5日20:01:18评论16 views字数 1368阅读4分33秒阅读模式

什么是文件包含漏洞:

1.  PHP文件是可以直接执行包含的文件的代码,包含的文件格式是不受限制的,只要能正常执行即可。

2.  文件包含不是漏洞但是能被攻击人员控制就是漏洞了

文件包含分为本地文件包含(local file include,LFI)是只能包含本地文件,大多出现在模块加载,模板加载,cache调用的地方。远程文件包含(remote file include,RFI)是指可以包含远程文件的漏洞但是需要设置allow_url_include=On,php5.2之后此选项可修改范围是PHP_INI_ALL

文件包含函数:

1.  include 在包含文件出错时依然往下执行

2.  require 在包含文件出错时直接报错退出执行

3.  include_once()和require_once如果文件被包含过一次,就不在重复包含

本地复现:

  

phpMyAdmin-4.8.1文件包含漏洞

  


发现包含函数中存在变量

 

跟进发现4个条件

phpMyAdmin-4.8.1文件包含漏洞


要想执行到61行则要满足这4个条件(1,传入的target变量是字符串 2,传参中不能以index开头 3,传参非$target_blacklist数组中的 4,满足Core类中的checkPageValidity函数)

 

跟进$target_blacklist

phpMyAdmin-4.8.1文件包含漏洞

发现数组中有import.phpexport.php

定位 checkPageValidity函数

phpMyAdmin-4.8.1文件包含漏洞


发现$_page在$whitelist中时返回true

phpMyAdmin-4.8.1文件包含漏洞

我们不会传入第二个形参,所以$whitelist=self::$goto_whitelist

跟进$goto_whitelist

phpMyAdmin-4.8.1文件包含漏洞


发现白名单

假设我们用db_sql.php?/../../../aaa.txt来绕过白名单限制进行包含文件但这种格式并不能跨路径包含,因为php程序把?号后面的东西当成是传入db_sql.php文件的参数

但是

phpMyAdmin-4.8.1文件包含漏洞



第三个和第二个对比多出了个  urldecode()函数,我们可以利用 双重编码绕过,将?经过两次编码  %253f就可以绕过白名单验证,当  %253f传入时,首先会被自动解码一次,变成%3f。然后urldecode()再解码一次,就变成了 ?。成功绕过了白名单限制。

因为在mysql文件夹中有对应数据库的目录,里面有frm文件
frm关于表字段文件,所以我们可以进入phpmyadmin中修改或添加带有一句话木马的字段

phpMyAdmin-4.8.1文件包含漏洞


phpMyAdmin-4.8.1文件包含漏洞


所以我们构建poc:http://10.101.41.38/phpMyAdmin/phpMyAdmin-4.8.1-all-languages/index.php?target=db_sql.php%253f/../../../../MySQL/data/zkaq/login.frm&8=phpinfo();


防御策略

1、无需情况下设置allow_url_include和allow_url_fopen为关闭

2、对可以包含的文件进行限制,可以使用白名单的方式,或者设置可以包含的目录,如open_basedir

3、建议假定所有输入都是可疑的,尝试对所有输入提交可能可能包含的文件地址,包括服务器本地文件及远程文件,进行严格的检查,参数中不允许出现../之类的目录跳转符。

4、严格检查include类的文件包含函数中的参数是否外界可控。

 

 


原文始发于微信公众号(是恒恒呐):phpMyAdmin-4.8.1文件包含漏洞

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年8月5日20:01:18
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   phpMyAdmin-4.8.1文件包含漏洞http://cn-sec.com/archives/951859.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息