gpt4 book ai didi

javascript - 了解 Javascript 中堆喷射的玩具示例?

转载 作者:行者123 更新时间:2023-11-29 15:44:05 26 4
gpt4 key购买 nike

以下代码的一个版本出现在 this presentation about heap spraying 中(此链接导致下载 powerpoint),以及 this lecture video by Dan Boneh .

<SCRIPT language="text/javascript">
shellcode = unescape("%u4343%u4343%...");
oneblock = unescape("%u0C0C%u0C0C");
cause-overflow(overflow-string); //overflow buf[]
</SCRIPT>

这里没有实现 cause-overflow() 函数,但我认为它只会在整个堆上写入 shellcode + nop

shellcode 实际上是exec(/bin/sh) 之类的机器代码,还是shellcode 内存位置 一些 shell 代码?

oneblock 是 NOP slide 吗?

(更一般地说,这段代码在做什么?为什么会导致堆喷射?)


附言不是家庭作业;我只是 javascript 的菜鸟。

最佳答案

(无法从 native 打开这两个链接中的任何一个。)

我从来没有在 Javascript 中玩过堆喷射——这个想法真的很可怕。

它与 shell 代码无关(因为它不在 shell 中运行),而是直接进入机器语言——CPU 的 native 代码。

这是一种相当粗糙且不准确的描述方式,但它传达了基本原理。

堆没什么特别的。它只是计算机内存。堆栈也没什么特别的,它只是计算机内存。程序空间也没什么特别的,它只是计算机内存。

通常[*],正在运行的程序保存在“程序空间”中。程序创建的大东西保存在“堆”中,程序创建的临时东西保存在“堆栈”中。 (简化——处理它。)

缓冲区溢出的想法、粉碎堆栈或喷射堆或任何最新的技巧......以某种方式用精心制作的错误数据填充计算机内存并强制计算机停止在程序空间中运行,而不是在您精心制作的不良数据中运行。

在涉及相当仔细的知识

  • 正在运行的程序
  • 它运行的系统
  • 机器语言/代码

[*] 是的,正在做出一些努力来改变这一点并使计算机受到更多保护

关于javascript - 了解 Javascript 中堆喷射的玩具示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14573516/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com