论坛首页 安全工具分享区 阅读主题

[原创]Sync Breeze Enterprise 10.0.28 - Remote Buffer Overflow 复现分析

277 浏览 2 回复
#1 楼主 2026-06-01 21:09:06
初来乍到,二进制新手。算是挑个软柿子捏一捏,做一个分析复现记录,大神轻喷
exploit-db地址 : f83K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2W2P5s2m8D9L8$3W2@1i4K6u0V1k6r3u0Q4x3X3g2U0L8$3#2Q4x3V1k6W2P5s2m8D9L8$3W2@1M7#2)9J5c8U0b7J5z5e0t1^5
找来一个对应版本的安装包
syncbreezeent_setup_v10.0.28
然后正常安装这个程序
从一个基础的exp开始服务开启80端口的web服务
注意是这个服务

加载windbg
直接执行上述exp查看windbg

eip被填满 查找eip位置 修改一下exp再次加载到windbg OK,拿到这个字符串去查询一下 eip的位置在780 + 4 修改一下exp
eip的位置已经如预期一样被填入字符B 查看esp 现在的内存布局就如我们的预期,eip前面是填充的A,eip的位置是B,eip后续的部分用C填充生成坏字符串集
默认情况下\x00都是坏字符所以这个坏字符集就没有\x00继续修改exp 捕获一些信息
首先 查看到此时 的eip = 42424242 符合预期
但是目前的esp开头在08070605的位置,为了方便 加一个offset进行填充
原本的 esp 的位置 现在 04030201 符合badchars 的预期
接下来 00cb0009 00ed67c0 说明 至少 09 00 cb 00 这个部分有坏字符
去找原版这部分对应的部分
\x0a\x0b\x0c\x0d
那么确定 \x0a 是坏字符
重复上述步骤找到所有的exp
循环往复 找到所有坏字符 如下 \x00 本身就是坏字符 所以包含在内
\x00\x0a\x0d\x25\x26\x2b\x3d就直接用msf生成那现在有shellcode,能够控制eip,需要重新修改下exp接下来的任务是找到一种方法,将执行流重定向到程序崩溃时 ESP 寄存器所指向的内存地址(即 shellcode 所在位置)
先这样直接执行这个exp 查看windbg

如上图所示,最快的方式就是找到一个jmp esp的指令FFE4
在windbg当中搜索 找到10090c83将这个部分替换eip程序崩溃

没有收到反弹shell,看起来这里是填充字符和shellcode混在一起了 所以增加一些nops修改exp再次执行 成功复现
完整代码:这里的nops和 exploit-db当中数量不太一样 是因为系统原因,我准备的Windows 10 有10个nops就够用 我看有些人需要20好像不太一定
#!/usr/bin/python

---
来源: 看雪论坛
原文链接: https://bbs.kanxue.com/thread-289339.htm
#2 2026-06-01 21:09:06
师傅,请问这是跟着exp-301(osed)做的吗?是的话,你第八章往后看了吗,我环境都搭建不起来被迫停止了
#3 2026-06-01 21:09:06
mb_fkndkpjq

师傅,请问这是跟着exp-301(osed)做的吗?是的话,你第八章往后看了吗,我环境都搭建不起来被迫停止了
enmmmm 这你要我怎么回答?

请登录后参与讨论

立即登录 注册账号