美文网首页
pwn学习之——花式栈溢出

pwn学习之——花式栈溢出

作者: 小白King | 来源:发表于2019-01-20 18:18 被阅读0次

第一步看看保护措施,确定方略,再看看ida里面有用信息:


image.png
image.png

看到是栈的溢出漏洞,但是发现栈空间不够写指令,又发现题目创建了个堆给你,应该可以好好利用这个堆实现我们想要的功能,正常来说,当栈的空间不够用时是写入bss段的,这里正好可以用,就先用吧,接下来找有用信息:


image.png
看来没有system和/bin/sh,有些迷,看到还有一个文件libcpovit.so,拖ida进去看看:
image.png
发现了我们想要的system函数,同时参数有效,就是直接得到flag,那么接下来就是要在povit中获取这个ret2win的真实地址了,再找找信息:
image.png
image.png

发现了相同的函数,思路已经比较清晰了:
首先让function函数执行一次,在got表中生成对应的真实地址,然后偏移量是利用在libc表中的偏移和真实表中的偏移相同,先计算出在libc表中ret2win和function之间的偏移。再用function真实地址+偏移地址=ret2win的真实地址。
脚本就可以写出来了:
1、计算偏移:


image.png

2、执行一次获取got表上的真实地址:


image.png
3、求ret2win的真实地址并调用这个函数:
image.png
4、得到堆顶指针:
image.png
5、栈溢出操作:
image.png

6、验证答案:


image.png
完整的脚本:
image.png
image.png

花式栈溢出:先把指令放在一个地方,给个地址返回值,然后就能在有限的栈溢出空间进行操作了,相当于跑到另一个地方去执行代码了,优秀!

相关文章

  • pwn学习之——花式栈溢出

    第一步看看保护措施,确定方略,再看看ida里面有用信息: 看到是栈的溢出漏洞,但是发现栈空间不够写指令,又发现题目...

  • 堆栈基础(一)

    新手入门pwn之栈溢出系列,先学习堆栈的基础,函数调用栈这些. 运行时栈 运行时栈(runtime stack)是...

  • 栈溢出简易指南

    栈 pwn 主题: 基本栈溢出 针对缓存区溢出防护的对策 shellcode 栈溢出的最终目的是执行shellco...

  • [new bugku] pwn

    最简单的pwn nc然后cat flag pwn3 64位栈溢出,程序有后门,栈溢出然后return到后门即可 p...

  • 花式栈溢出

    stack pivoting(堆栈旋转) 1.先运行一下我checksec ./b0verfl0w我们尝试输入数据...

  • Int 0x80 ROP链(x86)

    2017年湖湘杯的一道pwn题 2017 湖湘杯 pwn300 用memcpy把堆中数据向栈上写的时候造成栈溢出 ...

  • pwn write_up 合集

    一、bugkuctf pwn4(栈,ROP,system($0)) 图1很容易看出来read函数栈溢出 紧接着就是...

  • 新手科普 | CTF PWN堆溢出总结

    新手科普 | CTF PWN堆溢出总结 pwn堆溢出基础 CTF pwn 中最通俗易懂的堆入坑指南CTF pwn ...

  • pwn栈溢出-基本ROP

    0. 前言 接触ctf一年有余,作为一名ctf老菜鸟,没写过一篇ctf相关博客,确实不该。 本文介绍pwn入门操作...

  • over.over

    wiki花式栈溢出上的一道例题,先checksec 一波 只开了个NX,再看一眼IDA 很明显的栈溢出漏洞,但是并...

网友评论

      本文标题:pwn学习之——花式栈溢出

      本文链接:https://www.haomeiwen.com/subject/fetfjqtx.html