任意文件读取漏洞(CVE-2024-7928)修复

验证CVE-2024-7928问题是否存在可以使用如下方法:

https://域名/index/ajax/lang?lang=..//..//目录名/文件名(不带后缀) 

目录名是该项目的一个目录,这里目录位置为nginx设置站点目录为基准,网上两层目录。

文件名是目录下的项目文件,通常是包含项目参数初始化的文件。

假定目录名为application,文件名为database.php,那么验证链接为:

https://域名/index/ajax/lang?lang=..//..//application/database

在浏览器中验证效果如下:

该漏洞源于FastAdmin 1.3.3.20220121版本,该漏洞影响了文件/index/ajax/lang的一些未知功能。通过操作参数lang可以导致路径遍历。针对此漏洞,可参考FastAdmin修复建议,对代码进行修改。(官网地址:https://www.fastadmin.net/news/94.html)

官方提供了两种修复方法,一种是关闭多语言功能,一种是手动修改代码进行修复。

第一种修复方法;

修改application/config.php大概第45行的lang_switch_on的对应值修改为false即可。

打开application/common/behavior/Common.php,添加以下代码
 public function appInit()
    {
        $allowLangList = Config::get('allow_lang_list') ?? ['zh-cn', 'en'];
        \think\Lang::setAllowLangList($allowLangList);
    }
    
    
然后打开application/tags.php,在app_init对应的数组中添加以下代码

'app\\common\\behavior\\Common',

fastadmin另有安全提示如下:

建议启用application/config.php中的cookie配置中的httponly设置为true,如果是https,建议secure也配置为true。


FastAdmin目录安全配置,如下:

生产环境首先全部设置为555权限,
runtime目录设置为755权限
public/uploads目录设置为755权限并禁用PHP脚本执行

禁用后台admin模块,启用独立的后台登录入口,最新版已经默认禁用 admin 模块。
新增网站配置时务必绑定public目录,同时启用open_basedir限制只允许FastAdmin的根目录,例如:fastcgi_param PHP_VALUE "open_basedir=/var/www/fastadmin/:/tmp/:/proc/";
修改php.ini,禁用不安全的函数,配置如disable_functions = passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru

Rails 任意文件读取CVE-2019-5418),也称为RCE漏洞,是一个安全漏洞,它允许攻击者利用服务器的应用程序,比如Ruby on Rails框架,通过恶意请求来访问系统中的敏感文件。这个漏洞主要是由于Rails的`ActionView::Template#render_file`方法没有正确验证文件路径导致的。 解决这个问题通常涉及以下几个步骤: 1. **应用更新**:首先,确保你的Rails应用程序已经更新到最新版本,因为许多早期版本包含该漏洞修复。 ```bash bundle update rails ``` 2. **安全配置**:检查并强化`config/application.rb`中的`asset_host`和`public_send_whitelisted_headers`设置。移除`send_data`的白名单或仅限于特定路径,防止未授权访问。 ```ruby config.action_controller.allow_forgery_protection = true config.action_controller.public_send_whitelisted_headers << 'Content-Disposition' config.action_view.static_template_path = nil # 如果有自定义静态文件夹 ``` 3. **限制文件路径**:对用户输入进行严格的文件路径验证,并只允许从预定义的安全目录加载。 4. **启用安全模式**:如果你的环境支持,可以在开发阶段开启Rails的安全模式,这将禁用动态部分和文件渲染。 ```ruby config.action_controller.perform_caching = false ``` 5. **防火墙规则**:确保服务器级别的防火墙规则阻止未经授权的外部访问。 6. **安全审计**:定期审查日志,监控异常访问尝试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乐大师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值