代码之家  ›  专栏  ›  技术社区  ›  Piotr Czapla

堆喷攻击是如何工作的?

  •  6
  • Piotr Czapla  · 技术社区  · 14 年前

    Wikiepdia this blog post . 我理解shell代码是如何引入程序内存的。但是,如何使程序跳转/调用堆上的地址内存?

    这种攻击是否需要使用缓冲区溢出攻击?

    有没有像缓冲区溢出的黄金法则,即使用n个版本的函数( strncpy strcpy )?

    1 回复  |  直到 14 年前
        1
  •  2
  •   unknown6656    9 年前

    如果我理解正确,

    他们通常利用 这些堆块将 大致在同一地点 流可以重定向到堆 通过缓冲区溢出或堆喷射

    他们说的是这样一种情况:

    char buffer[10];
    FuncPtr p;
    

    当你读到 buffer p . 稍后当您的代码尝试调用 第页

    简单的解决方法:不要使用静态缓冲区(更喜欢 std::