250614_smileyCTF learning record

【全栈ctfer计划中,会持续复现学习与更新该文章】

pwn

debuggable-1

image.png

babyrop

image.png

考察知识点:

比赛时的临时笔记

image.png image.png 功能是获取输入后并输出。

静态分析

  • main() image.png
  • gets() image.png 自定义的gets()实现,读取最多700字节到a1指向的缓冲区(main中的s),若读取成功(v2 > 0),手动将缓冲区最后一个字符(v2-1 位置)设为 0(字符串终止符)。
  • gadgets() image.png
  • 无后门函数 image.png
  • 输出函数 image.png 这里调用print()实际上是去libc中寻找puts()

漏洞点分析

自定义的gets()中,读取700字节到s[32],显然容易造成溢出。

利用思路

显然是常规的ret2libc类型。

卡住的地方

cyclic寻找溢出偏移量: image.png offset = 40

这里有个坑,puts的plt、got其中一个找不到,还有print的干扰。。。暂时没啥思路了。

image.png

image.png image.png

blargh

考察知识点:

比赛时的临时笔记