返回东方编程和堆叠金丝雀
如果没有任何其他“帮助者”绕过金丝雀值,是否可以使用ROP使用ROP?如果是这样,您可以提供一些资源/材料,这些资源/材料进一步说明当人们不用任何其他技术使用ROP时如何完成?
Is it possible to utilize ROP when Stack canaries are in place without any other "helpers" to bypass the canary values? If so could you please provide some resources/material that further explains how it'd be done when one is just using ROP without any other techniques?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这取决于。
计算机有两种内存访问类型:
buf+len(有效载荷)
只考虑第一种情况,而且我很确定,如果没有任何“助手”,您就无法绕过金丝雀。唯一的方法是破坏其价值。
如果是任意写的,它可以使用格式字符串(旧类型的漏洞)或堆积漏洞进行,您只需要覆盖堆栈避免避开加那利地址即可。
nb :任意写作仍然难以实现
It depends.
Computers have two memory access types:
buf+len(payload)
Probably you were considering only the first case and I'm pretty sure that, without any "helper", you can't bypass the canary. The only way would be to bruteforce its value.
In case of an arbitrary write, which can happen with a format string (an old type of vulnerability) or heap vulnerability, you just have to overwrite the stack avoiding the canary address.
N.B.: Arbitrary write is still way harder to achieve