leak-canary
提取码8ypi
这是从别人那里看见的,在看canary怎么绕过的时候看到的
别人的博客
他讲的感觉挺对,不过这个程序他利用的不是很充分,然后我就现学现卖一下了
这里好像严格来说至少有两个漏洞,一个是buf<read的大小,栈溢出;一个是printf格式化字符串漏洞。
根据canary的保护机制,他就是在栈里面放一段数,(应该是随机的吧)然后在函数返回的时候检查这段数还在不在、是否完整,如果有人通过栈溢出破坏了这一段数,程序就崩溃了。
这是一个简单的提,没绕那么多圈子,有个格式化字符串漏洞就可以把canary泄露出来
首先
v3这个数应该就是canary,然后ida里给的提示是距离栈底Ch,
被选中的地方就是栈底,在main函数返回值上面,然后栈底往回减去C