zoukankan      html  css  js  c++  java
  • pwnable.kr-bof-Writeup

    MarkdownPad Document

    pwnable.kr-bof-Writeup

    http://pwnable.kr/bin/bof.c得到C代码如下:

     1 #include <stdio.h>
     2 #include <string.h>
     3 #include <stdlib.h>
     4 void func(int key){
     5     char overflowme[32];
     6     printf("overflow me : ");
     7     gets(overflowme);    // smash me!
     8     if(key == 0xcafebabe){
     9         system("/bin/sh");
    10     }
    11     else{
    12         printf("Nah..
    ");
    13     }
    14 }
    15 int main(int argc, char* argv[]){
    16     func(0xdeadbeef);
    17     return 0;
    18 }

    http://pwnable.kr/bin/bof下载文件bof,die查壳如下,无壳,为elf文件

    由题目中的提示Nana told me that buffer overflow is one of the most common software vulnerability. Is that true?可知此题的漏洞为缓冲区溢出,分析C代码:

    • 直接把bof拖到IDA中,通过查找关键字符串跳转到关键函数func:
    • 双击a1与s查看地址如下,则二者的地址相差+0x00000008 - (-0x0000002C) = 0x34 = 52

    • 因为0xCAFEBABE(即IDA中的-889275714)为小端存储,则可以在get(&s)处可构造输入 '0'*52+0xBE0xBA0xFE0xCA,在Linux中检验,可以得到flag为:daddy, I just pwned a buFFer :)

    构造输入时需要注意用 cat - 维持shell;

    2017-2-7 19:52;05

  • 相关阅读:
    Oracle(PLSQL)入门学习五
    visual studio 调试 不进断点 断点失效 提示当前不会命中该断点等问题解决
    java maven项目 导入jar包注意
    sql语句 like 条件查询
    sql语句 查询分组后的每组的第一条或最后一条数据
    文件上传的一些验证(文件类型)
    图片上传回显
    oracle数据库建表设置自增主键
    bootstrap时时提醒填入数据是否与数据库数据重复
    Oracle分析函数列表分享
  • 原文地址:https://www.cnblogs.com/WangAoBo/p/6375758.html
Copyright © 2011-2022 走看看