经典栈溢出之MS060-040漏洞分析

  找了好久才找到Win 2000 NetApi32.dll样本,下面我对这个经典栈溢出进行一下分析,使用IDA打开NetApi32.dll,问题函数:NetpwPathCanonucalize。实验环境:win xp sp3,ollydbg,IDA。exp编译工具:VC++ 6.0

其中的子函数存在溢出:

汇编代码注释:

两个溢出点,但是第一个无法利用:

找到一个网上的POC:

动态调试:找到函数返回地址被覆盖的位置。

不仅找到了覆盖的返回地址,同时发现ecx指向栈顶

寻找call ecx硬编码FFD1:

根据搜集到的信息:

栈空间的起始地址为0012F258

0x0012F258 bbbbbbbbb

0x0012F348 bbbbbbbbbbbbbb

0x0012F358 aaaaaaaaaaaaa

0x0012F670 \xc2\x7b\x19\x75

0x0012F674 aa

0x0012F66C ebp

0x0012F670 返回地址

call ecx 0x75197bc2

根据POC编写exp,测试:

原文发布于微信公众号 - 七夜安全博客(qiye_safe)

原文发表时间:2017-09-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

2 条评论
登录 后参与评论

相关文章

来自专栏jouypub

Linux各种变量的含义

410
来自专栏lgp20151222

MySQL中UTF8编码的数据在cmd下乱码

其实,原因是cmd用gbk的格式来显示数据,那么我们只需要将utf-8存储的数据用gbk的格式输出到cmd即可。

694
来自专栏JAVA同学会

JAVA9模块化详解(一)——模块化的定义

java9已经出来有一段时间了,今天向大家介绍一下java9的一个重要特性——模块化。模块化系统的主要目的如下:

762
来自专栏数据之美

Linux Shell 从入门到删除根目录跑路指南

shell 作为一门 linux 下使用广泛的系统语言,语法简单,上手容易,但是想要用好,少犯错误,也不是那么容易的一件事,可谓虽是居家旅行之良药,但也是杀人灭...

1998
来自专栏程序员互动联盟

【专业技术】linux下如何打造一个最简单的Makefile

相信在linux下编程的没有不知道makefile的,刚开始学习unix平台 下的东西,了解了下makefile的制作,觉得有点东西可以记录下。   下...

3398
来自专栏从零开始的linux

安装Elasticsearch5

新特性 支持lucence 6.x:索引性能提升 新增sliced scroll类型:并发遍历 新增profile API:查询优化 新增reindex:对数据...

2964
来自专栏技术博文

多个域名向主域名自动跳转的Nginx配置

if ($host = "bbs.umiwi.com"){ rewrite ^/(.*)$ http://bbs.youmi.cn/$1 permanen...

3355
来自专栏Rindew的iOS技术分享

iOS极光推送memory read failed fro 0x0闪退

1714
来自专栏程序员互动联盟

【答疑解惑】如何知道要包含哪个头文件

之前遇到一个同学问一个问题,他在c源文件中使用bool变量,然后编译的时候提示bool没有定义。不知道怎么办。其实对于初学者来说,遇到的编译错误最多的就是某某变...

2977
来自专栏各种机器学习基础算法

原 crontab使用

1493

扫码关注云+社区