Laravel Debug mode 远程代码执行(CVE-2021-3129)漏洞复现

admin 2021年5月14日03:34:06评论345 views字数 896阅读2分59秒阅读模式


00

简介

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


01

漏洞概述

当Laravel开启了Debug模式时,由于Laravel自带的Ignition 组件对file_get_contents()和file_put_contents()函数的不安全使用,攻击者可以通过发起恶意请求,构造恶意Log文件等方式触发Phar反序列化,最终造成远程代码执行。


02

影响版本

Laravel <= 8.4.2


03

环境搭建

1.这里使用GitHub上已有现成的docker环境搭建,使用git下载

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

Laravel Debug mode 远程代码执行(CVE-2021-3129)漏洞复现


2.进入目录使用docker-compose up -d 拉取镜像

Laravel Debug mode 远程代码执行(CVE-2021-3129)漏洞复现


3.在浏览器访问http://your-ip:8888,出现以下界面环境启动成功

Laravel Debug mode 远程代码执行(CVE-2021-3129)漏洞复现


4.点击首页的“generate key”然后刷新页面出现四个格子,表示环境搭建成功

Laravel Debug mode 远程代码执行(CVE-2021-3129)漏洞复现

Laravel Debug mode 远程代码执行(CVE-2021-3129)漏洞复现


04

漏洞复现

1、在下载GitHub上下载的docker环境中带有exp,使用此exp需要下载phpggc

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

Laravel Debug mode 远程代码执行(CVE-2021-3129)漏洞复现


2、给phpggc执行权限

Laravel Debug mode 远程代码执行(CVE-2021-3129)漏洞复现


3、修改exploit.py中的url为自己的漏洞地址

Laravel Debug mode 远程代码执行(CVE-2021-3129)漏洞复现


4、把exp和phpggc放在同一目录,使用python3执行exp,可以看到执行了exp里命令

exp:https://github.com/SNCKER/CVE-2021-3129python3 exploit.py

Laravel Debug mode 远程代码执行(CVE-2021-3129)漏洞复现


05

修复建议

1、 建议升级至安全版本




免责申明:

发文初衷为仅为方便安全人员学习交流使用。

请使用者遵守当地相关法律,勿用于非授权测试,勿用于非授权测试,勿用于非授权测试~~(重要的事情说三遍)~~,如作他用所承受的法律责任一概与凌晨安全无关!!!

Laravel Debug mode 远程代码执行(CVE-2021-3129)漏洞复现


本文始发于微信公众号(凌晨安全):Laravel Debug mode 远程代码执行(CVE-2021-3129)漏洞复现

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年5月14日03:34:06
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Laravel Debug mode 远程代码执行(CVE-2021-3129)漏洞复现https://cn-sec.com/archives/256451.html

发表评论

匿名网友 填写信息