如何在格式字符串攻击中将值写入地址
我正在接受安全课程,需要我们在unix虚拟机上进行格式化字符串攻击。漏洞是使用命令行参数的格式字符串。
我的问题是如何将值写入格式字符串中的地址(如将shell shell代码写入函数返回地址)?
例如,我尝试将值987654写入返回地址位置0xaabbccdd。
我试过像
"AAAA_%10$x"
这样的字符串,这可以导致程序打印AAAA_41414141
。
然后我用我的地址替换字母并尝试覆盖它。
xddxccxbbxaa_%10$x_%54321x_%n"
但它不起作用。我看到一篇文章说我应该在%54321x
中使用较小的数字,因为我已经写了一些字符,但我不知道在ѭ3之前我写过多少字符。
注意:环境有一个旧版本的gcc,所以没必要担心这个值太大了。
有什么建议?谢谢。
没有找到相关结果
已邀请:
3 个回复
痴浪墨
格式说明符,
无法写入任何地方。这是你想念的那个。像
这样的东西会将数字987654(到目前为止输出的字符数)写入第二个参数指定的地址,其中第一个参数是
。这应该足以让你入门。
董碘奴星
埠仙俊
例如:
一定要通过检查 xdd xcc
的结果来正确获取正确的地址“这可以用python或bash脚本完成 你应该检索地址aabbccdd