pwnable.krToddlr’s Bottle題解1

0x01前言:這一系列文章爲pwnable.krToddlr’s Bottle的全部題解,其中有三道題目相對而言稍難或者說比較經典,單獨成篇,其他題目的題解放在一起發出來。

0x02fd
Ssh連接
在這裏插入圖片描述
看一下目錄
在這裏插入圖片描述
我們需要執行flag,或者查看flag的內容
看題目的提示就知道這題和文件描述符有關
在這裏插入圖片描述
看看源碼
在這裏插入圖片描述
在代碼中我們可以看到要通過strcmp()比較後會輸出
查看strcmp的用法
在這裏插入圖片描述在這裏插入圖片描述

可知,strcmp()中,若參數s1和s2字符串相同則返回0,s1大於s2則返回大於0的值,s1小於s2則返回小於0的值。
代碼中要cat flag執行的話if語句應滿足strcmp返回0,即buf的內容應爲LETMEWIN
那麼buf的值哪來的呢
man read可知
在這裏插入圖片描述
buffer的值由read控制,從fd讀入count個字節內容
fd在代碼中的值爲atoi(argv[1])-0x1234
atoi()用於把字符串轉換爲整數
由linux下文件描述符可知(源碼在/usr/include/unistd.h)
在這裏插入圖片描述
即文件描述符0表示標準輸入,也就是我們可以從命令行中控制的。
Atoi接收的參數我們可以控制,只要令argv[1]爲0x1234(argv[0]爲程序名稱,argv[1]爲輸入參數),0x1234十進制爲4660,經過運算最後賦值給fd的就是0,然後再傳入read(),由於fd爲0,所以我們在命令行中輸入什麼,則在buffer中寫入的就是什麼,只要輸入LETMEWIN就可以了
分析完畢,接下來測試一下
在這裏插入圖片描述
通過,logout關閉ssh連接
在這裏插入圖片描述

0x02collision
在這裏插入圖片描述

看題目描述應和哈希碰撞相關
在這裏插入圖片描述
看看源代碼
在這裏插入圖片描述
在main()中看到傳入的argv[1]需要滿足條件:
長度爲20字節,傳給check_password後的返回值爲硬編碼的0x21dd09ec
那麼我們需要來看一下check_password的邏輯
可以看到傳參爲char型指針,在邏輯中被強制類型轉換爲int型指針
從大小的角度來看即1字節轉換爲4字節,一共20字節,20/4=5,剛好對應for循環裏的5次,for循環是做了個累加的操作,即累加和等於0x21DD09EC即可
emmm簡單理解,就是說輸入20字節,每4字節一組,共5組,5組相加後等於0x21dd09ec即可。
這就很簡單了
我設16個字節爲0x1,那麼另外的4字節應爲差值0x1dd905e8,又因爲小端序,所以寫的時候倒過來寫即可,如下所示
在這裏插入圖片描述

0x03bof
根據題目描述這是一道緩衝區溢出的題目
在這裏插入圖片描述
下載bof及其代碼
在這裏插入圖片描述
看看源碼
在這裏插入圖片描述
看到main中調用了func,傳參爲0xdeadbeef
而func()中可以看到需要傳參爲0xcafebabe纔可以getshell
我們注意到func中我們可以通過gets控制輸入,gets像本題的這種用法是非常危險的,容易造成緩衝區溢出攻擊,這次我們就來pwn掉它
我們嘗試輸入寫字符看看
在這裏插入圖片描述
那麼基本的思路有了,就是找到確定的偏移,然後使用0xcafebabe覆蓋0xdeadbeef。
偏移是多少呢
配合gdb來看看
在這裏插入圖片描述
在main下斷點
輸入r啓動
在這裏插入圖片描述
在斷點處停下了
我們反彙編func看看比較key和0xcafebabe指令在哪兒
在這裏插入圖片描述
看到上圖的紅框中的cmp指令了,這就是關鍵
可以看到地址是0x56555654
在這裏下個斷點
在這裏插入圖片描述
按c繼續執行
在這裏插入圖片描述
命中第二個斷點後,我們來看看棧的佈局
在這裏插入圖片描述
可以看到0xdeadbeef在0xffffd330,而我們輸入的A是從0xffffd2fc開始
emmm,數一下,從最開始的0x41到0xdeadbeef之前查了13*4=52個字節,在53-56處寫入0xcafebabe覆蓋掉原有的0xdeadbeef即可
編寫pwntools腳本
from pwn import *

payload = ‘A’ * 52 + ‘\xbe\xba\xfe\xca’
shell = remote(‘pwnable.kr’,9000)
shell.send(payload)
shell.interactive()
測試如圖,打回了一個shell
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章