写缓冲区溢出漏洞-如何找出shellcode的地址?

ccczhang

当我写缓冲区溢出漏洞时,我知道我需要输入一个长度为数组的地址(address_of_return_address-address_of_buffer)。并且该数组需要用shellcode的地址填充。这样,当我的输入数组溢出时,它将用shellcode的地址覆盖保存的返回地址。

我认为由于shellcode将存储在堆栈上保存的返回地址之上,因此其地址应为address_of_return_address +到shellcode开头的距离。

我在正确的轨道上吗?如果是这样,我应该如何使用GDB找出保存的返回地址与shellcode开头之间的距离?

银光狐狸

通常,您不需要“弄清楚” shellcode的地址。您使用设置的字符串溢出缓冲区并计算出偏移量。

AAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBCCCC

此处将BBBB覆盖EIP(下一条指令地址),然后CCCC移至ESP寄存器所指向的位置。

您需要找到一条将在shellcode处继续执行的指令,您可以在shellcode的CCCC开始处插入该指令JMP ESP指令。这必须是静态的(例如,没有ASLR),并且地址不应包含任何“不良”字符,例如\x00可能终止缓冲区的字符

所以过程是:

  1. 的缓冲区溢出A
  2. EIP现在指向您所在的JMP ESP指令。
  3. JMP ESP由处理器执行-ESP指向您的shellcode,此处继续执行。

开始时,您可能需要在shellcode上添加一些额外的填充,例如使用NOP(\x90),以便在使用编码的有效负载的情况下进行解码扩展。但是,某些AV和IDS会一起检测许多NOP的签名,因此最好让处理器忙于工作而不是阻止检测。

这是通常的方法,尽管这完全取决于有效载荷是否有空间以及是否以与上述类似的方式找到它。如果需要在其他位置写入有效负载,可以使用诸如NOP底座之类的技术使定位负载更容易。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

写缓冲区溢出漏洞-如何找出shellcode的地址?

来自分类Dev

修改具有缓冲区溢出漏洞的C函数的返回地址

来自分类Dev

如何使用缓冲区溢出攻击找到要利用的程序漏洞

来自分类Dev

如何以交互方式发送原始字节以进行缓冲区溢出漏洞利用?

来自分类Dev

如何实现缓冲区溢出

来自分类Dev

此代码如何使缓冲区溢出

来自分类Dev

缓冲区溢出漏洞

来自分类Dev

缓冲区溢出漏洞

来自分类Dev

简单的缓冲区溢出和shellcode示例

来自分类Dev

执行不在堆栈上的shellcode(缓冲区溢出)

来自分类Dev

堆栈地址不对应(试图了解缓冲区溢出)

来自分类Dev

关于堆栈缓冲区溢出漏洞

来自分类Dev

如何禁用PHP的文件读/写缓冲区?

来自分类Dev

如何不写比C缓冲区更多的字节?

来自分类Dev

如何修改emacs中当前缓冲区的写权限?

来自分类Dev

如何减少可移动设备的Linux写缓冲区?

来自分类Dev

如何禁用PHP的文件读/写缓冲区?

来自分类Dev

如何创建缓冲区溢出以测试Address Sanitizer?

来自分类Dev

GCC如何检测堆栈缓冲区溢出

来自分类Dev

如何处理“缓冲区队列溢出,丢弃”。(ffmpeg)

来自分类Dev

如何在现代系统上测试缓冲区溢出?

来自分类Dev

从文件读取时如何停止堆栈缓冲区溢出?

来自分类Dev

该机器码如何防止缓冲区溢出?

来自分类Dev

用户级别的fs io跳出缓冲区?为什么写文件缓冲区的地址空间应该对齐?

来自分类Dev

使用缓冲区溢出执行存储在环境变量中的shellcode

来自分类Dev

在缓冲区溢出中,返回地址被错误的地址覆盖,但仍然可以正常工作

来自分类Dev

char []和char *的缓冲区溢出漏洞

来自分类Dev

缓冲区溢出漏洞利用期间的编码问题

来自分类Dev

缓冲区溢出漏洞利用更改函数调用

Related 相关文章

  1. 1

    写缓冲区溢出漏洞-如何找出shellcode的地址?

  2. 2

    修改具有缓冲区溢出漏洞的C函数的返回地址

  3. 3

    如何使用缓冲区溢出攻击找到要利用的程序漏洞

  4. 4

    如何以交互方式发送原始字节以进行缓冲区溢出漏洞利用?

  5. 5

    如何实现缓冲区溢出

  6. 6

    此代码如何使缓冲区溢出

  7. 7

    缓冲区溢出漏洞

  8. 8

    缓冲区溢出漏洞

  9. 9

    简单的缓冲区溢出和shellcode示例

  10. 10

    执行不在堆栈上的shellcode(缓冲区溢出)

  11. 11

    堆栈地址不对应(试图了解缓冲区溢出)

  12. 12

    关于堆栈缓冲区溢出漏洞

  13. 13

    如何禁用PHP的文件读/写缓冲区?

  14. 14

    如何不写比C缓冲区更多的字节?

  15. 15

    如何修改emacs中当前缓冲区的写权限?

  16. 16

    如何减少可移动设备的Linux写缓冲区?

  17. 17

    如何禁用PHP的文件读/写缓冲区?

  18. 18

    如何创建缓冲区溢出以测试Address Sanitizer?

  19. 19

    GCC如何检测堆栈缓冲区溢出

  20. 20

    如何处理“缓冲区队列溢出,丢弃”。(ffmpeg)

  21. 21

    如何在现代系统上测试缓冲区溢出?

  22. 22

    从文件读取时如何停止堆栈缓冲区溢出?

  23. 23

    该机器码如何防止缓冲区溢出?

  24. 24

    用户级别的fs io跳出缓冲区?为什么写文件缓冲区的地址空间应该对齐?

  25. 25

    使用缓冲区溢出执行存储在环境变量中的shellcode

  26. 26

    在缓冲区溢出中,返回地址被错误的地址覆盖,但仍然可以正常工作

  27. 27

    char []和char *的缓冲区溢出漏洞

  28. 28

    缓冲区溢出漏洞利用期间的编码问题

  29. 29

    缓冲区溢出漏洞利用更改函数调用

热门标签

归档