【发布时间】:2011-06-18 19:35:34
【问题描述】:
我正在学习安全课程,需要我们对 unix 虚拟机进行格式字符串攻击。该漏洞是使用命令行参数的格式字符串。
我的问题是如何将值写入格式字符串的地址(如将 shell 代码地址写入函数返回地址)?
例如,我尝试将值 987654 写入返回地址位置 0xaabbccdd。
我尝试了一些像"AAAA_%10$x"这样的字符串,这可以导致程序打印AAAA_41414141。
然后我用我的地址替换字母并尝试覆盖它。
\xdd\xcc\xbb\xaa_%10$x_%54321x_%n"
但它不起作用。我看到一篇文章说我应该在%54321x 中使用较小的数字,因为我已经写了一些字符,但我也不知道我在%54321x 之前写了多少个字符。
注意:环境有老版本的gcc,不用担心值太大。 有什么建议?谢谢。
【问题讨论】:
标签: c string security format-string