Pwntools-fmtstr_payload

fmtstr_payload

fmtstr_payload是pwntools里面的一个工具,用来简化对格式化字符串漏洞的构造工作。

可以实现修改任意内存
fmtstr_payload(offset, {printf_got: system_addr})(偏移,{原地址:目的地址})

1
2
3
4
5
6
fmtstr_payload(offset, writes, numbwritten=0, write_size=‘byte’)
第一个参数表示格式化字符串的偏移;
第二个参数表示需要利用%n写入的数据,采用字典形式,我们要将printf的GOT数据改为system函数地址,就写成{printfGOT:systemAddress};本题是将0804a048处改为0x2223322
第三个参数表示已经输出的字符个数,这里没有,为0,采用默认值即可;
第四个参数表示写入方式,是按字节(byte)、按双字节(short)还是按四字节(int),对应着hhn、hn和n,默认值是byte,即按hhn写。
fmtstr_payload函数返回的就是payload

实际上我们常用的形式是fmtstr_payload(offset,{address1:value1})

image-20240510205517088
这个是专门为32位程序格式化字符串漏洞输出payload的一个函数

__libc_csu_fini就是在**main执行完毕后执行**


Pwntools-fmtstr_payload
http://ak0er.github.io/2024/05/04/Pwntools-fmtstr-payload/
作者
Ak0er
发布于
2024年5月4日
许可协议