日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[BUUCTF-pwn]——others_shellcode

發布時間:2024/4/17 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [BUUCTF-pwn]——others_shellcode 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

[BUUCTF-pwn]——others_shellcode

  • 題目地址: https://buuoj.cn/challenges#others_shellcode

peak 小知識

寫這道題之前, 大家首先要了解, 想要獲得一個shell, 除了system("/bin/sh") 以外, 還有一種更好的方法, 就是系統調用中的 execve("/bin/sh", NULL, NULL)獲得shell。我們可以在 Linxu系統調用號表 中找到對應的系統調用號,進行調用, 其中32位程序系統調用號用 eax 儲存, 第一 、 二 、 三參數分別在 ebx 、ecx 、edx中儲存。 可以用 int 80 匯編指令調用。64位程序系統調用號用 rax 儲存, 第一 、 二 、 三參數分別在 rdi 、rsi 、rdx中儲存。 可以用 syscall 匯編指令調用。

言歸正傳,我們來看看這道題
先checksec一下, 沒什么32位程序,開啟了NX保護

在IDA中,看蒙了。之前沒遇到過。連個輸出都沒有,注意到getshell函數上面的result變量 旁邊的 eax。函數名叫getshell肯定是暗示在這里進行獲得shell的。


在匯編中看看, 嘶發現有 int 80 指令。eax = 0FFFFFFFFh - 0FFFFFFF4h = 11。看上面函數也發現result也就是eax的值就是11

看下Linxu系統調用號表 11對應的就是 execve 可是ebx ecx edx的參數怎么辦。

秉承著走一步寫一步的想法。一運行竟然可以, 孩子也是吐了。完全不知道這道題考的什么, 不過多執行試試這個習慣還是很好的,就比如這次, 不就莫名其妙成功了嘛。

exploit

from pwn import * p = remote('nde3.buuoj.cn', 28531) p.interactive()

希望能夠找到ebx ecx edx寄存器對應參數的大佬, 可以在評論里面指教一下。我個人覺得pwndbg肯定可以查看,但是我的pwndbg最近有點問題。看看大佬們有沒有其他方法。

總結

以上是生活随笔為你收集整理的[BUUCTF-pwn]——others_shellcode的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。