二进制安全
程序猿的安全路,关注web安全,二进制安全,走上脚踏实地的转型道路。
counsellor
这个作者很懒,什么都没留下…
展开
-
【漏洞分析】Microsoft IE execCommand函数释放后重用漏洞(CVE-2012-4969)
0x00 前言前一段时间接到了某种检测语言的翻译工作,因为这种检测语言是为公开的,所以需要编译器重新翻译处理。准确的说是一种DSL(Domain Specific Language)。之前的大神有过一个版本的类似DSL解析,尝试改了改,发现人肉工作量不可接受。之前写过json的解析器。感觉本质相同,于是重新写了一个解析器,解析效率杠杠的,收到了意想不到的成果。so cool~趁着五一翻翻cve...原创 2019-05-09 13:52:58 · 1220 阅读 · 0 评论 -
windbg调试符号win10下代理设置
0x00 前言时间过得太快,本来还想再win7上再战几年后转win10用windbg,结果win7在2019年年底已经停止维护了。今年2月有停止了edge的维护。前几篇博文还停留在xp的漏洞阶段。最近开始捡起windows的漏洞调试技术,准备再战,结果win10下的windbg一致提示找不到符号,郁闷了。0x01 配置符号文件在windbg的命令行中直接输入:0:040> .symp...原创 2020-03-08 21:39:31 · 5313 阅读 · 6 评论 -
关闭IE多进程
0x00 前言在调试IE8的时候发现有两个进程,随便选了一个进程attach,发现无法跟踪崩溃堆栈。0x01 LCIE从Internet Explorer 8版本开始,浏览器引入了松耦合技术(Loosely-Coupled IS,LCIE)。在LCIE模式下,IE浏览器总是有至少两个进程——浏览器框架管理器进程(除非以管理员模式运行IE,该进程总是运行在MediumIL级别下)和一个或多个...原创 2019-05-05 10:42:59 · 1377 阅读 · 0 评论 -
【漏洞分析】Mozilla Firefox 字符串替换堆破坏漏洞(CVE-2013-0750)
0x00 前言有源码,不用IDA反编译,比较容易发现问题。0x01 简介在Mozilla Firefox浏览器的js实现中出现整数溢出漏洞,除了影响Firefox18.0以前的所有版本,还影响了Thunderbird,SeaMonkey 等产品,这个漏洞允许攻击者通过构造字符串拼接执行恶意代码。CVE-2013-0750影响firefox历史的全部版本,在当时绝对是一颗重磅炸弹了。看下那时...原创 2019-02-01 01:10:53 · 1031 阅读 · 0 评论 -
【漏洞分析】Adobe Acrobat和Reader整数溢出漏洞(CVE-2012-0774)
0x00 前言总体来说坑不多,但是对于windbg没有watchpoint功能这一点,真的是很坑。0x01 简介Adobe Acrobat和Reader在True Type Font (TTF)处理的实现上存在整数溢出漏洞,攻击者可利用此漏洞执行任意代码。受影响软件版本:Adobe Reader 9.4.[0-5]Adobe Reader 9.3.[0-4]Adobe Reader ...原创 2018-12-12 20:21:59 · 1391 阅读 · 0 评论 -
反汇编代码分析之CVE-2012-0774
int __cdecl sub_800798B(int a1){ unsigned int v1; // edi@2 _DWORD *v2; // eax@3 int v3; // edx@3 unsigned int v4; // ecx@3 int v5; // edi@5 int result; // eax@8 if ( (unsigned int)(dwo...原创 2018-12-12 13:48:25 · 446 阅读 · 0 评论 -
【漏洞分析】Foxit Reader BMP biWidth 堆溢出漏洞(CVE-2017-17557)
0x00 前言总体来说,坑不多,走下来很平坦。毕竟只是简单的整数溢出漏洞,没有太多知识点。0x01 简介Foxit Reader 在2018年5月18日的安全公告中提及修复了因恶意调用特定函数,导致程序可能遭受堆缓冲区溢出远程代码执行漏洞攻击的问题(CVE-2017-17557/ZDI-CAN-5472/ZDI-CAN-5895/ZDI-CAN-5473。受影响版本为Foxit...原创 2018-08-30 23:58:48 · 809 阅读 · 0 评论 -
windbg符号路径设置
0x00 前言windbg没有引入符号文件(pdb)会导致系统库上的变量,堆栈等信息无法显示。0x01 简介PDB(Program Database),是微软开发的用于存储程序调试信息的文件格式。pdb文件是由源码在编译期生成,存储了源文件名称,变量名,函数名,FPO(帧指针),对应行号等信息。由于体积庞大,同时出于安全性考虑。可运行程序exe或者dll文件都是无符号的。在wi...原创 2018-08-30 00:23:16 · 13135 阅读 · 0 评论 -
linux中ret2libc入门与实践
前言本来想找一个windows下的栈溢出漏洞的poc作为漏洞分析路程的开篇,但是一路走来遇到了太多的问题,大大小小,什么都有。同时因为工作事情比较多,能拿出来调试和写文章的时间也是断断续续。昨天刚有一点心得,今天就忘了一大半,同时会推翻自己之前的结论。经过漫长的求证过程,打算把NX利剑-ret2libc这种方法和其原理用简单直接的方式展示出来。简介DEP-数据执行保护(Data...原创 2018-08-23 18:50:54 · 6818 阅读 · 0 评论 -
Assembly call和ret指令
很多人不知道call和ret的具体动作,只知道call的时候会跳转到被调用函数的地址继续执行指令,ret会直接跳转到返回地址,至于寄存器和栈上的变化不是很了解。0x00 定义CALL pushes the return address onto the stack and transfers control to a procedure.RET pops the return addr...原创 2018-06-14 01:49:55 · 1653 阅读 · 0 评论 -
test和je指令的组合用法
0x00 指令介绍test 指令用于两个操作数的按位AND运算,并根据结果设置标志寄存器,结果本身不会写回到目的操作数。 要点:1. AND 运算结果为0时, ZF(zero flag)置位;2. test可以影响CF,OF,PF,SF,ZF标志位;3. 两个操作数相等,同时为0时,AND 结果为0, 此时ZF置位。je 指令【Jump if Equals】在ZF被置位时跳转。...原创 2018-07-11 18:27:23 · 24419 阅读 · 1 评论 -
mov和lea指令的区别
0x00 指令概念lea 指令(Load Effective Address)只能用于 memory addressing calculations, 不能用于 address memory 的计算。lea 接受标准的memory addressing operand,除了计算特定的寄存器(可能是任意用于一般目的的寄存器)的内存偏移,其他什么都做不了。这个指令能干啥?两件add 指令做不到...原创 2018-07-18 12:54:31 · 19284 阅读 · 3 评论 -
如何通过gdb查看反汇编代码
0x00 程序源码C代码如下:#include <stdio.h>int addme(int a, int b){ int c ; c = a+ b; return c;}int main(int argc, char const *argv[]){ int ret= 0; ret = addme(10,20); pri...原创 2018-06-13 23:33:49 · 24280 阅读 · 0 评论