YS VTM模块存在格式化字符串漏洞,可导致VTM进程异常退出[高危] 问题描述: YS VTM模块开放对外监听端口(8554和8664),此次使用sulley fuzzing框架对监听在8664端口的私有二进制协议进行测试,以检测可能发生的各种问题.在该协议中,客户端会向8664端口发送一个二进制+文本格式的报文,对该报文格式的各个字段进行fuzzing,发现当向服务端的VTM进程传入格式化字符串时会崩溃并退出. 测试步骤: 1.  分别在客户机和服务器安装sulley fuzzing框架并为…
记录了安全测试过程中发现的一些典型的安全问题 YS忘记密码机制存在缺陷,可导致任意用户口令被修改[高] 问题描述: YS网站提供用户密码修改功能,当用户忘记密码时可通过该功能找回密码,但该修改密码的流程存在如下问题: 1.  手机验证码过短(只有4位且为纯数字),很容易被暴力破解. 2.  只单纯通过手机验证码来判断用户的真伪,在输入手机验证码后直接在页面上进行密码修改,而不是采用更安全的多重认证的方式. 测试步骤: 1.  安装burp并启动http请求拦截功能. 2.  打开YS首页,选择“…
目录 [二进制漏洞]PWN学习之格式化字符串漏洞 Linux篇 格式化输出函数 printf函数族功能介绍 printf参数 type(类型) flags(标志) number(宽度) precision(精度) length(类型长度) n$(参数字段) 格式化字符串漏洞 格式化字符串漏洞原因: 漏洞利用 使程序崩溃(测试) 栈数据泄露(堆栈读) 获取栈变量数值 获取栈变量字符串 堆栈读总结 栈数据覆盖(堆栈写) 覆盖变量 任意地址内存泄漏(任意读) 任意地址内存覆盖(任意写) 覆盖小数(小于…
1.1    canary内存保护机制 1.1.1    canary工作原理 canary保护机制类似于/GS保护机制,是Linux下gcc编译器的安全保护机制之一,在栈中的结构如下图所示: 在函数初始化的时候回初始化一个随机的canary值置于缓冲区的末端,在函数返回之前会对canary的值进行验证,无误则正常返回. 1.1.2    通过格式化字符串漏洞绕过canary ⑴.原理分析: 因为通过格式化字符串漏洞可以实现任意内存的读写,而且,在一个程序里,不同函数在运行中使用的canary值…
Linux Pwn入门教程系列分享如约而至,本套课程是作者依据i春秋Pwn入门课程中的技术分类,并结合近几年赛事中出现的题目和文章整理出一份相对完整的Linux Pwn教程. 教程仅针对i386/amd64下的Linux Pwn常见的Pwn手法,如栈,堆,整数溢出,格式化字符串,条件竞争等进行介绍,所有环境都会封装在Docker镜像当中,并提供调试用的教学程序,来自历年赛事的原题和带有注释的python脚本. 课程回顾>> Linux Pwn入门教程第一章:环境配置 Linux Pwn入门教程…
0x01 简介 VMware OVF Tool 是一个命令行实用程序,允许您从许多 VMware 产品导入和导出 OVF 包.在 2.1.0 - 2.1.3 之间的版本中存在格式化字符串漏洞,通过修改任意地址的任意数据,覆盖栈中的返回值,稍加利用就可以达到执行任意代码的目的 调试环境:Windows 7 + VMware OVF Tool 2.1.0.调试工具:OD.样本:poc.ovf 样本 poc + VMware OVF Tool 2.1.0 利用包下载(提取码:km7j) 0x02 OD…
作者:Tangerine@SAINTSEC 0x00 printf函数中的漏洞 printf函数族是一个在C编程中比较常用的函数族.通常来说,我们会使用printf([格式化字符串],参数)的形式来进行调用,例如 char s[20] = “Hello world!\n”; printf(“%s”, s); 然而,有时候为了省事也会写成 char s[20] = “Hello world!\n”; printf(s); 事实上,这是一种非常危险的写法.由于printf函数族的设计缺陷,当其第一个…
本文作者:Tangerine@SAINTSEC 原文来自:https://bbs.ichunqiu.com/thread-42943-1-1.html 0×00 printf函数中的漏洞printf函数族是一个在C编程中比较常用的函数族.通常来说,我们会使用printf([格式化字符串],参数)的形式来进行调用,例如 然而,有时候为了省事也会写成 事实上,这是一种非常危险的写法.由于printf函数族的设计缺陷,当其第一个参数可被控制时,攻击者将有机会对任意内存地址进行读写操作. 0×01 利用…
前言 这是 0ctf 的一道比较简单的格式化串的题目. 正文 逻辑非常简单 do_read 可以打印内存地址的数据,可用来 泄露 got. leave 格式化字符串漏洞. printf(s) 直接调用 exit 退出了.不过可以使用 %1000c 触发 printf 里面的 malloc 和 free, 所以思路很清楚了,修改 free_hook 或者 malloc_hook 为 one_gadget, 并且在格式化串末尾加上 %1000c触发 malloc 和 free 最后 最开始修改 fr…
前言 格式化字符串漏洞也是一种比较常见的漏洞利用技术.ctf 中也经常出现. 本文以 njctf 线下赛的一道题为例进行实战. 题目链接:https://gitee.com/hac425/blog_data/blob/master/decoder 正文 程序的流程如下 部分函数已经进行了标注,看程序打印出来的提示信息就知道这个是一个 base64 解码的程序,然后可以通过 猜测 + 验证 的方式,找到那个 用于 base64 解码的函数. 这个程序的漏洞在于将 base64 解码后的字符串直接传…