前言
作者最近因为爱好啊什么的各种原因,购入了TL-IPC42C-4摄像头,刚好有个CVE-2024-48288漏洞,就想着自己复现学习一下并找找有没有新漏洞。因为作者大多都是自学,如果哪些步骤有更好更方便的方式,可以的话请告诉我,谢谢喵
固件模拟与信息收集
固件地址:https://security.tp-link.com.cn/service/detail_download_9856.html

固件解压
用binwalk解压

用readelf查看固件架构

可知是arm架构的32位小端序
固件配置查看以及信息收集
我们可以先去固件的开机配置启动脚本init.d中去看关于web服务器的相关配置

用cat查看uhttpd

UHTTPD_BIN="/usr/sbin/uhttpd"
PX5G_BIN="/usr/sbin/px5g"
从这两行我们可以看出网页服务器真正的二进制程序位置在/usr/sbin/uhttpd
checksec

未开启Canary和PIE
分析httpd程序的结构

通过burpsuite抓包我们可以得知


当我们点击菜单来切换不同页面时的请求URL结构都是http://IP地址/stok=一串数字/pc/页面.htm 这一类结构(get方法)
而post方法改数据改信息什么的请求基本都是通过同结构的/ds这个接口实现的

接下来来到ida,我们通过特定字符串找到了业务逻辑函数uh_slp_proto_request,大概作用有处理URL接口、负责鉴权、JSON 解析、配网 onboarding、初始化改密码、登录,最重要的是里面的函数可能有我们需要找的处理pc接口的handle函数

这里源码大概就是通过slp_proto_array这个数组(一共有九项,每项的接口对应了各自的handler函数)第一条就是pc接口调用sub_1761C这个函数

分析sub_1761C这个函数,我们可以发现pc接口通过URL参数拼接/usr/lib/lua/luci/view/admin/读取本地文件来
