gpt4 book ai didi

c - 格式化字符串攻击 - 跳转到 x64 上的 shell

转载 作者:太空狗 更新时间:2023-10-29 12:41:17 25 4
gpt4 key购买 nike

如何在启用 NX 的 64 位系统上利用 printf 格式字符串漏洞?

在这个代码示例中,您可以做什么来获得一个 shell?

void f(char *buf) {
printf(buf);
exit(0);
}

int main() {
char buf[1024];
scanf("%1024s", buf);
f(buf);
return 0;
}

我认为,由于 NX 和缺乏明显的跳转位置(代码中的任何地方都没有 execve(/bin/bash...),它必须返回到- libc 攻击,但跳转到哪里?

我相信可以覆盖 exit 的 GOT 条目以跳转到任意位置,例如 execvesystem,但是如何在寄存器中设置适当的参数?在二进制文件中搜索 ROP 链并跳转到那里?

或者是否有其他方法可以从中获取 shell?

最佳答案

最重要的是你自己说过,现在大多数 printf 函数都不支持用于利用格式字符串的 %n 标记,因此攻击技术是有点死了。

在今天的场景中,它很可能无法利用。因此,除非这是格式字符串利用或捕获标志类型的练习,否则我建议您关注更多最新的利用技术。

关于c - 格式化字符串攻击 - 跳转到 x64 上的 shell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43170123/

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