查看题目信息
漏洞分析
将程序放到ida pro里分析,查看main()
函数:
int __cdecl main(int argc, const char **argv, const char **envp)
{
setvbuf(stdin, 0, 2, 0);
setvbuf(stdout, 0, 2, 0);
setvbuf(stderr, 0, 2, 0);
vuln();
return 0;
}
main()
函数只调用了vuln()
函数,跟进vuln()
函数。
vuln()
函数提供了两个read()
函数和两个printf()
函数,并且两次read()
函数获取输入都是存入到&buf
中。
但是&buf
的大小只有0x30
,而read()
函数可以输入0x38
,这里存在溢出,但是只能溢出8个字节,刚好覆盖ebp
和