CVE-2021-3129 Laravel Debug mode 远程代码执行漏洞

本文详细解读了Laravel框架中的安全漏洞,涉及Eloquent ORM对file_get_contents和file_put_contents的不当使用,演示了如何通过恶意请求利用漏洞获取控制并执行任意命令。修复建议包括升级到最新版本和配置白名单策略。
摘要由CSDN通过智能技术生成

前面简介文字多,但是复现过程详细,不要划走哦。可爱的你点个赞呗

0x00 Laravel简介

Laravel是一套简洁、优雅的PHP Web开发框架(PHP Web Framework)。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁、富于表达力。

在Laravel中已经具有了一套高级的PHP ActiveRecord实现 -- Eloquent ORM。它能方便的将“约束(constraints)”应用到关系的双方,这样你就具有了对数据的完全控制,而且享受到ActiveRecord的所有便利。Eloquent原生支持Fluent中查询构造器(query-builder)的所有方法。

0x01 漏洞概述

由于Laravel自带的lgnition组件对file_get_contents()和file_put_contents()函数的不安全使用,攻击者可以通过发起恶意请求,构造恶意Log文件触发phar反序列,最终造成代码执行

0x02 影响版本

Laravel <= 8.4.2
Ignition <2.5.2

 0x03漏洞复现,环境搭建

在这里用到两台机器(使用一台机器也可)

1 攻击机:kali 2021.2

2 靶机:Centos7

 Centos操作:

  1 克隆github上已经搭建好的  环境

git clone git://github.com/SNCKER/CVE-2021-3129 

  2 在克隆好的目录下进行执行以下命令启动环境

docker-compose up -d

  3 在浏览器访问自己ip:8888端口   并且点击Generate app key即可

   点击之后刷新页面,出现以下页面即搭建成功

kali操作:

   4 克隆环境的目录中附带exp,kali攻击机也可在github上进行下载(为了方便,我直接拖过去了)

    下载运行exp所使用的到的工具(与exp放同一目录下)

git clone git://github.com/ambionics/phpggc.git

 

 

    给phpggc可执行权限 

chmod 777 ./phpggc/phpggc

   5 使用vim修改exploit.py中的目标地址为Centos7地址(即目标地址)

  6 使用python3运行脚本开始攻击(从配置文件可以看出默认查看/etc/password文件,也可手动修改)

python3 exploit.py

 

   7 修改一下exploit.py脚本就可以执行任意命令

vim exploit.py

 在exploit文件开头添加import sys库

  主函数修改为:


  8 运行脚本开始测试

第一个参数为目标ip,''中为执行的命令

python3 exploit.py http://192.168.21.129:8888 'whoami'

 

 9 也可一键getshell,连接哥斯拉

exp地址:GitHub - SecPros-Team/laravel-CVE-2021-3129-EXP

防护建议:

1.使用白名单限制相关web项目的访问来降低风险

2.将 Laravel 框架升级至8.4.3及其以上版本,或者将facade ignition组件升级至 2.5.2 及其以上版本

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

种树人1

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

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

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

打赏作者

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

抵扣说明:

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

余额充值