zoukankan      html  css  js  c++  java
  • Javris oj——level1

    不难
    题目中也给了提示:vulnerable函数,而且明显的栈溢出

    首先file一下:32位
    然后gdb checksec——发现没有开启NX——在栈中写入shellcode,然后溢出栈,覆盖返回地址为shellcode地址

    问题:栈的地址?题中buf没有初始化,而且程序默认开启ASRL,每次的buf的地址都不一样

    但是题目还是给了提示:在打印第一句的时候打印出来了buf地址——要进行读取——使用io.recv()来进行读取
        但是注意:io.recv()读出来的数据是str类型,要转换成为数字才能使用,Python中的int()有类型转换的功能

    然后将shellcode和其他没有意义的填充字符写在一起,构成0x88个字符,使用.ljust()函数,在后面添加无意义字符

    然后加一个ebp
    然后加上返回地址——我们自己控制,使其为shellcode的地址——题中是之前读取的buf的位置

    然后就可以拿到shell

     

  • 相关阅读:
    网络编程(四)
    网络编程(三)
    网络编程(二)
    网络编程(一)
    异常处理
    Python 的名称空间和作用域
    如何在Java 8中愉快地处理日期和时间
    线段树入门整理、
    最小生成树prim、
    <climits>头文件
  • 原文地址:https://www.cnblogs.com/volva/p/11813795.html
Copyright © 2011-2022 走看看