CVE-2018-17066复现
CVE-2018-17066复现
技术分享|2024-7-27|Last edited: 2025-1-18
type
status
date
slug
summary
tags
category
icon
password
AI summary

0x01

记录

复现一下cve,首先在官网下载固件
notion image
查看下文件类型是u-boot
notion image
使用binwalk提取文件系统
  • M 参数,递归扫描文件
  • e 参数,提取固件中的文件
安装binwalk(推荐)
如非必要不要选择下面的安装方式(笔者曾尝试过,这样会删除很多依赖,辛辛苦苦搭起来ubuntu环境全烂了)
提取完后如图所示
notion image
接下来我们将goahead的环境搭起来,goahead在bin目录下
qemu启动goahead
notion image
看报错,缺少lib目录下ld,我们在当前目录下创建lib并将ld放在文件夹下即可
有很多缺少库的报错,我们根据报错将库放入即可
最后结构如图所示
notion image
qemu运行,然后不出意外的又失败了
notion image
可以看见goahead报错cannot open pid file,我们就去程序里找
ida搜索字符串
notion image
是无法fopenoff_480e50
notion image
发现是没有/var/run/goahead.pid,创建一个
notion image
又报错please execute nvram_daemon first!
notion image
发现缺失/var/run/nvramd.pid
notion image
报错failed to convert to binary ip data
notion image
定位到lan_ipaddr
notion image
卡住…
看见网上的办法都是ida远程调试hook掉,待我研究研究qemu远程调试

疑问

如何确定是哪个二进制文件?我看网上全是直接开始分析goahead,但是在漏洞挖掘中我们是不知道哪里有漏洞的,如何确定漏洞所在的文件?

0x02

记录

书接上回,让我们看看如何解决failed to convert to binary ip data报错
notion image
经过本人实测,远程调试patch是最可靠的方法
具体操作如下
1.虚拟机选择桥接
notion image
2.将在ida的dbgsrv目录下linux_serverlinux_server64文件复制到ubuntu下
notion image
notion image
3.赋予linux_serverlinux_server64可执行权限
sudo chmod +x ./linux_server linux_server64
4.ifconfig查看虚拟机ip
notion image
5.在ubuntu上运行linux_server并运行goahead
sudo qemu-mipsel -g 1234 -L ./ ./bin/goahead
在ida里填好ip,端口
notion image
6.打断点,运行
notion image
7.修改v0的值为0,即可继续运行
notion image
打开http://192.168.0.105/dir_login.asp,即可进入登陆界面(不能在ubuntu打开,困扰了我好久😢,用kali打开的,本机也可)
notion image
搭好之后我们要登录进去,我选择修改前端(也可以patch)
_DIR-816.img.extracted/squashfs-root/etc_ro/web中找到dir_login.asp,注释掉禁止输入空字符的js即可
至于为什么这样做,主要是为了绕过登录代码
这个程序的登录逻辑是从nvram_bufget获得用户名和密码放在v2,v3。用户输入的用户名和密码经过base64编码放在var和v7中,解码后的用户名和密码放在v10,v11中
v2,v3值为0,当v10,v11为0时即可绕过检查
notion image
访问http://192.168.0.5/d_wizard_step1_start.asp
notion image
找到漏洞点,ls测试一下
notion image
不行,那用burp抓下包
notion image
在datetime处注入命令
notion image
发过去,success
notion image
详细看下代码,从web获得输入的datetime的值放在var
&unk_47c2b8date -s \"%s\",var可以由用户控制,存在命令注入
notion image

疑问

复现cve最大的感触是寻找漏洞才是最关键的,这个漏洞出现在cgi上,cgi更容易产生漏洞?
2024geekgamesctf_factory
Loading...