[典型漏洞分享]YS VTM模块存在格式化字符串漏洞,可导致VTM进程异常退出【高危】
YS VTM模块存在格式化字符串漏洞,可导致VTM进程异常退出【高危】
问题描述:
YS VTM模块开放对外监听端口(8554和8664),此次使用sulley fuzzing框架对监听在8664端口的私有二进制协议进行测试,以检测可能发生的各种问题。在该协议中,客户端会向8664端口发送一个二进制+文本格式的报文,对该报文格式的各个字段进行fuzzing,发现当向服务端的VTM进程传入格式化字符串时会崩溃并退出。
测试步骤:
1、 分别在客户机和服务器安装sulley fuzzing框架并为私有二进制协议编写相应测试脚本,此时服务器端上的VTM进程正常工作,如图所示:
2、 在服务器端通过sulley分别启动VTM进程监听和fuzzing数据的网络抓包,如下图所示:
3、 在客户机启动sulley fuzzing测试,sulley将根据我们自定义的协议脚本进行数据变异,并发送到服务器的VTM进程,如图所示:
4、 观察服务器端的sulley进程监听窗口,发现出现异常信息,如图:
5、 观察服务器端的任务管理器,发现VTM进程已经退出,如图所示:
6、 观察服务器端的sulley网络抓包窗口,发现问题出现在第109个fuzzing用例,如图:
7、 该用例数据包为pcap格式数据包,由sulley自动抓取并保存在C:\crash目录下,如图所示:
8、 使用wireshark打开该用例数据包,发现sulley在tts请求的IP字段填充了由多个”%n”组成的格式化字符串,该数据是导致VTM异常退出的主要原因,如图所示:
9、 由于字符串是由多个”%n”字符组成的,因此我们需要进一步判断到底是字符串的超长溢出还是对特殊格式化字符解析错误导致的进程异常退出,为此,我们使用python脚本进行手动验证。
10、 打开wireshark,并启动抓包功能,设置过滤条件为tcp.port == 8664,如图所示:
11、 编写python脚本,模拟步骤8的数据包格式,向tts请求的IP字段填充200个’A’字符,并进行发送,并通过wireshark抓包确认发包准确,如图所示:
12、 观察服务器端的VTM进程,并未发现异常,如图:
13、 模拟步骤8的数据包格式,重新向tts请求的IP字段填充200个’%n’字符,并进行发送,并通过wireshark抓包确认发包准确,结果发现VTM进程异常退出,如图所示:
14、 以下为VTM进程异常退出时,使用ollydbg抓取的调用栈信息,如图所示:
15、 根据步骤13,不断调整向服务器发送的”%n”字符串的个数,发现当”%n”字符>=6个时,VTM进程就会崩溃,因此,可以确定并非缓冲区溢出造成的进程崩溃,而是进程在对格式化字符串进行解析时出现的异常。
问题扩展:
1、 通过不断的验证和测试,发现tts请求的其它字段也同样存在类似问题,比如port字段,talk字段等等,只是针对不同的字段在重现问题时所需要的”%n”字符串的最少个数是不一样的,此外,不同的字段产生的异常栈信息也不一样。
2、 除了使用”%n”字符串可导致VTM进程异常以外,”%s”字符串亦能重现此问题,可能还存在其它的格式化字符或特殊字符能够导致该问题,应平行排查.
[典型漏洞分享]YS VTM模块存在格式化字符串漏洞,可导致VTM进程异常退出【高危】的更多相关文章
- [典型漏洞分享]YS忘记密码机制设计存在缺陷,导致任意用户口令均可被修改【高】
记录了安全测试过程中发现的一些典型的安全问题 YS忘记密码机制存在缺陷,可导致任意用户口令被修改[高] 问题描述: YS网站提供用户密码修改功能,当用户忘记密码时可通过该功能找回密码,但该修改密码的流 ...
- [二进制漏洞]PWN学习之格式化字符串漏洞 Linux篇
目录 [二进制漏洞]PWN学习之格式化字符串漏洞 Linux篇 格式化输出函数 printf函数族功能介绍 printf参数 type(类型) flags(标志) number(宽度) precisi ...
- 通过格式化字符串漏洞绕过canary
1.1 canary内存保护机制 1.1.1 canary工作原理 canary保护机制类似于/GS保护机制,是Linux下gcc编译器的安全保护机制之一,在栈中的结构如下图所示: 在函数 ...
- CTF必备技能丨Linux Pwn入门教程——格式化字符串漏洞
Linux Pwn入门教程系列分享如约而至,本套课程是作者依据i春秋Pwn入门课程中的技术分类,并结合近几年赛事中出现的题目和文章整理出一份相对完整的Linux Pwn教程. 教程仅针对i386/am ...
- CVE-2012-3569:VMware OVF Tool 格式化字符串漏洞调试分析
0x01 简介 VMware OVF Tool 是一个命令行实用程序,允许您从许多 VMware 产品导入和导出 OVF 包.在 2.1.0 - 2.1.3 之间的版本中存在格式化字符串漏洞,通过修改 ...
- Linux pwn入门教程(6)——格式化字符串漏洞
作者:Tangerine@SAINTSEC 0x00 printf函数中的漏洞 printf函数族是一个在C编程中比较常用的函数族.通常来说,我们会使用printf([格式化字符串],参数)的形式来进 ...
- Linux pwn入门教程——格式化字符串漏洞
本文作者:Tangerine@SAINTSEC 原文来自:https://bbs.ichunqiu.com/thread-42943-1-1.html 0×00 printf函数中的漏洞printf函 ...
- 格式化字符串漏洞利用实战之 0ctf-easyprintf
前言 这是 0ctf 的一道比较简单的格式化串的题目. 正文 逻辑非常简单 do_read 可以打印内存地址的数据,可用来 泄露 got. leave 格式化字符串漏洞. printf(s) 直接调用 ...
- 格式化字符串漏洞利用实战之 njctf-decoder
前言 格式化字符串漏洞也是一种比较常见的漏洞利用技术.ctf 中也经常出现. 本文以 njctf 线下赛的一道题为例进行实战. 题目链接:https://gitee.com/hac425/blog_d ...
随机推荐
- linux内核启动分析(2)
-----以下内容为从网络上整理所得------ 主要介绍kernel_init线程(函数),这个线程在rest_init函数中被创建,kernel_init函数将完成设备驱动程序的初始化,并调用in ...
- clearcase command (linux 常用命令)
http://publib.boulder.ibm.com/infocenter/cchelp/v7r0m0/index.jsp?topic=/com.ibm.rational.clearcase.h ...
- [How to]简单易用的拷贝Mac文件路径方法
效果: 在你想拷贝路径的文件夹或者文件上右键会出现 copy path 选项! 实现: 1.打开finder的的Automator组件 2.选择[服务]选项,点击[选取]按钮 3.搜索操作项目中[拷贝 ...
- ajax之深入解析(1)
AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML).AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. AJ ...
- CSS3 icon font
大家都知道现在各个浏览器都支持CSS3的自定义字体(@font-face),包括IE6都支持,只是各自对字体文件格式的支持不太一样.那么对于网站中用到的各种icon,我们就可以尝试使用font来实现, ...
- 760. Find Anagram Mappings
Given two lists Aand B, and B is an anagram of A. B is an anagram of A means B is made by randomizin ...
- maven项目的pom.xml文件详解
<project xmlns="http://maven.apache.org/POM/4.0.0 " 2 xmlns:xsi="http://www.w3.org ...
- W3School WebService教程
http://www.w3school.com.cn/webservices/index.asp
- T-SQL备忘(6):常用内置函数
日期和时间函数: 1.获取当前时间:GETDATE() select GETDATE() 返回: 2015-04-27 20:52:06.700 2.返回时间的部分(日.月.年) a.获取日: sel ...
- 微软企业库5.0 学习之路——第五步、介绍EntLib.Validation模块信息、验证器的实现层级及内置的各种验证器的使用方法——下篇
一.独立验证器 我上篇中我将AndCompositeValidator和OrCompositeValidator归为独立验证器,这2个验证器主要是为了第一类验证服务,可以进行多种验证组合在一起进行复杂 ...