linux栈溢出4-绕过ROP、ASLR(不知道libc.so)

本文介绍了在Ubuntu 14 32位系统下,针对开启了DEP和ASLR的环境,如何进行Linux栈溢出攻击。通过内存搜索获取`system()`函数地址,并利用`/bin/sh`执行shell。文中详细阐述了利用DynELF模块找到`system`地址,以及通过pop pop pop ret gadget保持堆栈平衡的方法。
摘要由CSDN通过智能技术生成
调试环境是ubuntu14 32位
这次开启了DEP、ASLR(不知道libc.so情况下)
还是参考了《一步一步学ROP之linux_x64篇》这篇文章。

代码是1.c:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

void vulnerable_function() {
    char buf[128];
    read(STDIN_FILENO, buf, 256);
}

int main(int argc, char** argv) {
    vulnerable_function();
    write(STDOUT_FILENO, "Hello, World\n", 13);
}
gcc -fno-stack-protector -o 1 1.c
开启ASLR:
sudo -s 
echo 2 > /proc/sys/kernel/randomize_va_space
exit
我们的最终目的是执行system('/bin/sh')代码,所以需要获取system函数的地址,以及想法获取字符串‘bin/sh’的地址。

因为不知道libc.so 文件,所以现在通过内存搜索(内存泄漏)的方式获取函数地址,这就需要用到
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值