buuctf firmware(binwalk和firmware-mod-kit的使用)
生活随笔
收集整理的这篇文章主要介绍了
buuctf firmware(binwalk和firmware-mod-kit的使用)
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
文章目录
- 题目介绍
- 环境搭配以及文件提取
- firmware-mod-kit工具:[https://blog.csdn.net/ldwj2016/article/details/80712566](https://blog.csdn.net/ldwj2016/article/details/80712566)
- 然后查壳
- 脱壳
- 拖进ida
题目介绍
环境搭配以及文件提取
bin文件,首先用binwalk来提取文件
120200.squashfs这是一个linux的压缩文件
我们需要firmware-mod-kit工具来进行解压。
firmware-mod-kit工具:https://blog.csdn.net/ldwj2016/article/details/80712566
# For Ubuntu 需要安装的依赖库文件 $ sudo apt-get install git build-essential zlib1g-dev liblzma-dev python-magic git clone https://github.com/mirror/firmware-mod-kit.git # 进入源码目录 cd firmware-mod-kit/src # 执行configure文件生成Makefile文件然后make编译生成可执行文件 ./configure && make把文件放在firmware-mod-kit目录下进行解压
进行如下解压。
./unsquashfs_all.sh fireware/120200.squashfs然后得到目录
根据题目,他需要找后门软件,直接find即可
然后查壳
脱壳
拖进ida
题目所要flag为:md5(网址:端口)
搜索字符串:
网址的话也就只有这个。网址:echo.byethost51.com
在主函数中关于连接的代码的话,也就这里 :
initConnection()函数
58转化为字符后是":"
进入 initConnection()函数后看到的是端口号为36667,查看一下这个函数,
char *strchr(const char *str, int c)参数str – 要被检索的 C 字符串。
c – 在 str 中要搜索的字符。
这个函数的意思我觉得是,检查一下这个网址后面有没有自带端口,有的话呢,就把端口值取出来赋给v3,也就是原来我们自己赋的端口值,然后把:这个位置改为0(为什么要把区分网址和端口的位置改为0,我也很好奇);没有的话呢,就直接跳过
刚才错了,转换为字符一看后,就知道了,
它是\0,也就是字符结束标志喽,然后呢,这个字符串就去掉了端口号,它就会自行去拼接
总结
以上是生活随笔为你收集整理的buuctf firmware(binwalk和firmware-mod-kit的使用)的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: [WUSTCTF2020]level3
- 下一篇: 微信小程序开发(一)