漏洞查找之比较补丁


搜索camara找到一个类似二进制漏洞文件(缓冲区溢出)

搜索cve

双击进来之后有一些简单的描述

漏洞描述

下载到了有和没有漏洞的固件,用bindiff比较了一下,发现区别最大的函数

区别函数

ghidra打开跳转到对应地址(L快捷键可以重命名变量,;(英文的分号)可以下注释)

两个文件的对应位置

可以看到,左边的补丁添加了一个local_414变量,最多拷贝7次,多了就会造成溢出

更多信息

进一步向上追踪,发现程序在这里调用漏洞函数。

调用漏洞函数

FUN_00403804函数很简单,仅仅是判断字符串"public/getSysteminfo.cgi“后面还有其他东西或者是只有”\0”或”?”也就是没有东西了。
应该是url的一部分

到这里已经知道了访问哪个url会调用漏洞函数。

接下来确定哪个字段的溢出

漏洞点

想要确定一个变量是什么就找什么地方用到了这个变量或者是什么时候定义了这个变量。在本层函数里没有找到有意义的对param_6的引用。

继续向上查找找到了param_6字段的值cgiQueryString

字段来源

在URL后面紧跟着”?”的部分就叫cgiQueryString

总结

也就是说访问 http://127.0.0.1/public/getSysteminfo.cgi?a_b_c_…… 很多下划线就会造成溢出


评论
 上一篇
金盾pwn3 金盾pwn3
对输入数据进行了拼接然后输出,输出的时候有格式化字符串漏洞。循环限制输入三次。 第一次泄露elf文件基地址,第二次修改三次限制。之后泄露libc基地址,栈地址,修改返回地址输入exit返回。 #coding=utf-8 from pwn
2020-12-20
下一篇 
qemu-system启动命令 qemu-system启动命令
背景在调试iot系统的时候只运行一个服务软件会运行失败,这是需要用到系统模式,运行起来一个系统,这样程序运行的环境更充足,成功的概率也更大。 之前调试mips架构程序,用这个可以满足,现在改成arm的,启动的时候仅仅换磁盘镜像,内核这些东西
2020-12-08
  目录