简单易懂的 pwnable.kr 第二题[collision]Writeupt
簡(jiǎn)單易懂的 pwnable.kr 第二題[collision]Writeupt
題目地址:http://pwnable.kr/play.php
題目如下:
和第一題一樣,題目給了我們一個(gè)ssh遠(yuǎn)程登錄地址和登錄密碼,廢話不多說,先進(jìn)入VMware虛擬機(jī)的ubuntu 16.04系統(tǒng)里面看看。
密碼是:guest。 第一次輸錯(cuò)了大家不要介意。
迫不及待查看一下里面都有什么文件以及屬性。Linux命令:ls -al,發(fā)現(xiàn)col.c文件是可讀的。col文件是可執(zhí)行的不知道為什么可讀,可以查看Linux 文件屬性和權(quán)限
其他文件都沒辦法操作目前,那我們就查看一下col.c里面的內(nèi)容。
Linux命令:cat col.c
不知道這個(gè)命令的可以自行百度或者查看Linux常用命令大全
內(nèi)容如下:
帶參數(shù)的main函數(shù)點(diǎn)擊查看
我們可以看到只要 system("/bin/cat flag"); 這一語句執(zhí)行我們就可以得到我們想要的flag。而想要執(zhí)行這一語句,我們就需要前面兩個(gè)if語句不能執(zhí)行,并且第三個(gè)if語句要保證執(zhí)行。也就是說我們的 argc >= 2 、argv[1] == 20 并且 check_password的返回值為 0x21DD09EC
0x21DD09EC = 0x02020202 * 4 + 0x19D501E4
所以寫一個(gè)小python腳本將值給求出來,并輸入即可。
0x21DD09EC = 0x01010101 * 4 + 1DD905E8
所以當(dāng)然也可也輸入,print ‘\x01010101’ * 4 + ‘\xE8\x05\xD9\x1D’。
答案不唯一,大家隨意。
可能大家有疑惑為什么反著寫,因?yàn)镃語言是小端存儲(chǔ)。
flag大家也看到了就是:
daddy! I just managed to create a hash collision 😃
daddy! I just managed to create a hash collision :)希望對(duì)大家有所幫助哦。
總結(jié)
以上是生活随笔為你收集整理的简单易懂的 pwnable.kr 第二题[collision]Writeupt的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux错误:E212 can‘t o
- 下一篇: 3分钟了解带参数的main函数