【问题标题】:Buffer overflow not working (shellcoders handbook)缓冲区溢出不起作用(shellcoders 手册)
【发布时间】:2017-05-16 01:24:39
【问题描述】:

我正在阅读 shellcoder 的手册。我一直在跟进,但由于某种原因无法运行我的 shellcode。我已经编译了程序 gcc -mpreferred-stack-boundary=2 -m32 -z execstack -fno-stack-protector -no-pie

我不明白...我控制了 EIP,我查看了 GDB 中的堆栈,我正在跳到我的 NOP 雪橇上,但仍然没有...我不明白为什么它不起作用。我自己尝试过,我什至尝试了书中的逐字代码,两者都不起作用。我的 dmesg 正在显示:

控制 EIP: 段错误在 42424242 ip 0000000042424242 sp 00000000ffffd330 错误 14

尝试重定向到 NOP 雪橇后: 0 ip 00000000ffffd332 sp 00000000ffffd300 错误 6 处的段错误 6

我正在运行 kali,但我也在 ubuntu 上尝试过。我在 /proc/sys/kernel 中禁用了 ASLR。我正在虚拟机上尝试这个,所以我不确定到底发生了什么。

我会很感激任何帮助,因为在我弄清楚发生了什么之前我不想继续前进。

【问题讨论】:

  • 我遇到了同样的问题,但我似乎无法找出原因。我从/proc/<pid>/maps(堆栈)获得的要跳转的ip。

标签: c buffer-overflow exploit


【解决方案1】:

您的 shellcode 是针对 64 位程序上的 32 位系统(-m32 标志)编译的。所以编译时尽量去掉那个-m32。

【讨论】:

  • 我也尝试过 32 位 linux...同样的问题。
  • 你确定吗?你能发布额外的信息,比如程序和shellcode吗?
  • 我问了一个拥有剥削硕士学位的朋友,他说他不确定为什么它不起作用,我猜这可能与 Linux 中较新的内核有关。我继续进行 rop 剥削而且它工作正常
猜你喜欢
  • 2012-08-09
  • 2012-12-18
  • 1970-01-01
  • 1970-01-01
  • 2015-12-16
  • 1970-01-01
  • 2010-11-11
  • 1970-01-01
  • 2021-06-13
相关资源
最近更新 更多