pwn

格式化字符串

Posted by Sagiring on 2023-03-11
Estimated Reading Time 1 Minutes
Words 208 In Total
Viewed Times

格式化字符串

特点:image-20230121150856504

可以看查任意地址内容

%p 或 %{num}$p

可以任意写地址

%n 或 %{num}$n 须:栈中拥有指针

书写格式为 %{addr}c%{num}$n (一般不行 得逐字节写入)

即:%{addr}c%{num}$hhn

例如:写入0x40158a 到 stack_chk_fail_addr 中

image-20230121151552065
image-20230121151407660

关于stack_chk_fail

是canary保护中,如果xor失败就运行

栈中的canary 在rbp前的一段以00结尾的数 十分明显

printf的输出漏洞

printf输出字符串遇到/0()才会终止。

image-20230121151957251

例:当读进0x100个a时末尾便不带/0,print(%s),便会显示0x100后的栈中数据,如果刚好时push的ebp的话,可以刚好泄露栈中地址

关于fmtstr的使用

image-20230121152310178

此题可以采用在bss段和栈中同时写入达到使用的目的