最近学习了一圈i春秋的相关知识之后,感觉还是需要刷题。pwnable.kr还没有刷完,所以抽时间出来有功夫就刷刷题。
第一题 fd
首先ssh连接,查看程序。

可以发现程序比较简单,其中fd是可以指定的,当fd值为0时为输入。

第二题.collision
查看完代码发现是需要第二个参数输入的值经过计算==给的值。

可以看到将char类型强制转换为int类型。而int类型一个占四个字节。所以就变成了20个字符长度,分为五段求和。
用pyhon随便减一下:

然后输入既可:

第三题 bof
简单溢出,扔ida里查询

发现基地址有44字节 再加上4个字节的ebp 4个字节的返回地址也就是52个字节后面覆盖成cafebabe既可。
exp:

然后查看flag既可

但是这里我有一个疑问,为什么开了cannary但是却可以直接溢出成功呢?
再具体分析下:

第一个黄色的行表明
overflowme到ebp为2c 到cafebabe 又加8个字节。
本文解析了Pwnable.kr平台上的三个挑战题:fd、collision及bof。通过ssh连接进行fd题目尝试,利用Python解决collision的碰撞问题,并详细分析了bof题目中的缓冲区溢出漏洞。
2128

被折叠的 条评论
为什么被折叠?



