缓冲区溢出 - 格式字符串漏洞和利用
Buffer Overflow - Format String Vulnerability and Exploit
我正在 YouTube 上关注 tutorial 以了解缓冲区溢出漏洞。我能看到他的机器和我的机器之间的主要区别是他的地址由 8 个字节组成,而我的地址由 12 个字节组成。但是,我们的两个内存块似乎都是 8 个字节。
当他 运行 在 gdb 中使用他的 exploit 命令时,他使用
r $(python -c 'print "\xff\xff\xff\xff" + "%08x-" * 6 + "%s"')
其中 "\xff\xff\xff\xff"
是他的内存地址。
我运行我的命令使用
r $(python -c 'print "\xFF\xFF\xFF\xFF\xFF\xFF" + "%08x-" * 3 + "%s"')
其中 \xFF\xFF\xFF\xFF\xFF\xFF
是我的内存地址。 (我将他的 *6
更改为 *3
因为他的堆栈指针与他的内存地址相距 6 而我的相距 3)。
我已经尝试更改 "%08x"
值的数量以及将值更改为 %x012
以及 %x12
.
是否有处理 12 字节地址的特定方法,或者此漏洞是否存在于 12 字节地址中? ASLS 已禁用。
很可能你将程序编译为 64 位,而老师将他的程序编译为 32 位。
缓冲区溢出在 64 位模式下的工作方式不同。有不同的事情需要考虑。如果您想先了解基础知识,建议编译为 32 位并尝试这种方式。
我正在 YouTube 上关注 tutorial 以了解缓冲区溢出漏洞。我能看到他的机器和我的机器之间的主要区别是他的地址由 8 个字节组成,而我的地址由 12 个字节组成。但是,我们的两个内存块似乎都是 8 个字节。
当他 运行 在 gdb 中使用他的 exploit 命令时,他使用
r $(python -c 'print "\xff\xff\xff\xff" + "%08x-" * 6 + "%s"')
其中 "\xff\xff\xff\xff"
是他的内存地址。
我运行我的命令使用
r $(python -c 'print "\xFF\xFF\xFF\xFF\xFF\xFF" + "%08x-" * 3 + "%s"')
其中 \xFF\xFF\xFF\xFF\xFF\xFF
是我的内存地址。 (我将他的 *6
更改为 *3
因为他的堆栈指针与他的内存地址相距 6 而我的相距 3)。
我已经尝试更改 "%08x"
值的数量以及将值更改为 %x012
以及 %x12
.
是否有处理 12 字节地址的特定方法,或者此漏洞是否存在于 12 字节地址中? ASLS 已禁用。
很可能你将程序编译为 64 位,而老师将他的程序编译为 32 位。
缓冲区溢出在 64 位模式下的工作方式不同。有不同的事情需要考虑。如果您想先了解基础知识,建议编译为 32 位并尝试这种方式。