美文网首页CTF-PWN网络安全
PWN入门第三课(Off-By-One 漏洞)

PWN入门第三课(Off-By-One 漏洞)

作者: Magicknight | 来源:发表于2018-04-10 20:48 被阅读77次

详情见大神的博客:https://sploitfun.wordpress.com/2015/06/07/off-by-one-vulnerability-stack-based-2/

漏洞程序:

//vuln.c
#include <stdio.h>
#include <string.h>

void foo(char* arg);
void bar(char* arg);

void foo(char* arg) {
 bar(arg); /* [1] */
}

void bar(char* arg) {
 char buf[256];
 strcpy(buf, arg); /* [2] */
}

int main(int argc, char *argv[]) {
 if(strlen(argv[1])>256) { /* [3] */
  printf("Attempted Buffer Overflow\n");
  fflush(stdout);
  return -1;
 }
 foo(argv[1]); /* [4] */
 return 0;
}

漏洞程序当输入的字符串等于256的时候,从bar函数可以知道,字符串的截断字符\0会覆盖掉ebp,导致ebp的最低有效位为00.


栈空间

从栈空间我们知道,返回ip的地址为ebp+4。需要计算返回地址填充的位置。

使用gdb -q vuln3调试:

解释:-q参数表示不显示gdb版本信息。


diasa main

我们看下发生拷贝字符函数的汇编代码


disas bar
从这里可以看出,buff偏离ebp 0x100。现在要计算出此时的ebp。
在拷贝处,下断点进行调试。
下断点调试,获取ebp的值

从寄存器看到此时的ebp=0xffff020。

那么当ebp返回时,由于最低有效位被填充00,其ebp的值为0xffff000,而返回地址从栈空间可以看出来为0xffff004.


gdb调试获取ebp的值

那么返回地址前的填充长度=0xffff004-(0xffff020-0x100)=0xe4

按照大神博客里面填充,我的shellcode放不下,放到前面发现获取不到shell。猜测是因为esp=0xffff008,放前面没有栈空间了。


屏幕快照 2018-04-10 下午9.26.46.png 屏幕快照 2018-04-10 下午8.34.01.png

相关文章

  • PWN入门第三课(Off-By-One 漏洞)

    详情见大神的博客:https://sploitfun.wordpress.com/2015/06/07/off-b...

  • pwn入门的一些学习资料

    总结记录一下pwn入门的一些学习资料 pwn入门学习的网站: CTF Wiki 必备技能: 汇编语言要搞pwn首先...

  • 软件漏洞分析入门(一)

    软件漏洞分析入门(一) 未被公开的漏洞称为 0 day。 软件漏洞分析入门(二) 软件漏洞分析入门(三)

  • PWN

    PWN的基础 一、PWN的由来 CTF比赛主要表现以下几个技能上:逆向工程、密码 学、ACM编程、Web漏洞、二进...

  • 【pwnable.tw 系列】start

    概述:本题是pwn的入门级题目,几乎把所有利用的难度都降到最低,应该只是用来让入门者大致了解pwn题的玩法。 1、...

  • 看雪2018 CTF第9题 video_Editor解题过程

    漏洞分析 这道题也是linux pwn,仿照video_Editor可以对Video Clip、Audio Cli...

  • noxctf-2018-wp

    pwn1-believeMe x86 elf | nx , stack canary 漏洞点:40个字符内的格式化...

  • PWN 堆入门

    什么是堆 堆(chunk)内存是一种允许程序在运行过程中动态分配和使用的内存区域。相比于栈内存和全局内存,堆内存没...

  • 【笔记】CTF入门指南

    【考项分类】Web: 网页安全Crypto: 密码学(凯撒密码等)PWN: 对程序逻辑分析 系统漏洞利用Misc:...

  • 格式化字符串

    格式化字符串漏洞网上讲的也很多,这里就不对漏洞进行解释了,直接讲怎么做题,以湖湘杯的pwn200为例子: 拿到题目...

网友评论

    本文标题:PWN入门第三课(Off-By-One 漏洞)

    本文链接:https://www.haomeiwen.com/subject/hninhftx.html