iT邦幫忙

2024 iThome 鐵人賽

DAY 16
0
Security

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

[Day16] Pwnable.tw 基礎題實戰(三)

  • 分享至 

  • xImage
  •  

今天同樣做 pwnable.tw 的題目,第二題 orw

先確認一下檔案類型跟記憶體保護機制,
https://ithelp.ithome.com.tw/upload/images/20231013/20163074PouEluSpn8.png
發現同樣是 x86 並且有開啟 Canary。

用 IDA 打開
https://ithelp.ithome.com.tw/upload/images/20231013/20163074qH24No5bEx.png
我們可以看到他先執行一個叫 orw_seccomp 的函數,接著我們可以輸入一段 shellcode 讓他執行。

在 Linux kernel 中有個特性稱為 seccomp 模式,他是一種沙箱環境。在 seccomp 這種模式下的 peocess 使用的 system call 被做限制,只能使用 read()、write()、exit() 和 sigreturn(),避免 system call 的濫用造的安全疑慮。

而在這題中,點開 orw_seccomp
https://ithelp.ithome.com.tw/upload/images/20231013/20163074IuFuXXXGqp.png
可以看到他使用了 prctl 去時做這個沙箱機制。prctl 是 Linux 的 system call ,用於設定 process 的資源限制、訊號處理方式等。

我們能透過 seccomp-tools 此工具確認那些 system call 並限制了。

https://ithelp.ithome.com.tw/upload/images/20231013/20163074Pd1TzAYv2l.png
可以發現能用的只有幾個,其中比較方便利用的為 open、read、write。

接下來我們要想辦法構造一個不用調用 execve 或直接調用 system call 但能得知 flag 的 payload
下一篇文章將會接續說明


上一篇
[Day15] Pwnable.tw 基礎題實戰(二)
下一篇
[Day17] Pwnable.tw 基礎題實戰(四)
系列文
Pwn2Noooo! 執行即 Crash 的 PWNer 養成遊戲30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言