Vigor 3900 stack overflow 复现

前言

漏洞详情:https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-14993

参考poc链接

固件获取

前往官网获取1.5.1版本的固件。

参考这篇文章对固件进行解包。

可以使用 ubi_readerubidump 工具。经过尝试,最后使用到 ubidump 工具

使用如下命令对固件进行解包:python ubidump.py -s . image.ubi,可以得到rootfs文件夹

漏洞分析

根据公布的漏洞公告,可以定位到漏洞函数位于sub_2802C函数中

IDA分析可以知道获取了一些参数,主要引发漏洞的地方在于strcpy(&v33,src)的位置。

由于程序在运行的过程中会执行许多命令,其中uci get general_conf.base.status若返回结果不为enable则会直接返回,为了调试漏洞,我才用qemu-system-arm来模拟运行。

在调试前需要将一些动态库和运行时需要的程序复制到指定位置,写成一个脚本如下:

#! /bin/sh
cp usr/lib/libcgi.so.1  /lib/
cp lib/libuci.so.0.7  /lib/
cp usr/lib/libjansson.so.0  /lib/

# bypass execve "uci get general_conf.base.status" command
cp sbin/uci /bin/

# bypass execve "cfg_restore "
cp ./sbin/cfg_restore /sbin/

# To start lighttpd
cp usr/lib/libpcre.so
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值