做了网鼎杯才发现自己有多菜。。。
拿到题目先ida一波
基本分析
看到了发现了是一个本地加载flag.txt所以有可能可以用stack samsh:详细可以看ctf wiki上的花式栈溢出技巧然后拖入gdb
进行一波checksec
可以发现有了nx栈不可执行这个还好,但是看到了cannary就有点头疼了。。还好有stack smash这个方法可以leak出一些地址然后再leak出栈上的内容 可以看看关于stack smash的源码
void __attribute__ ((noreturn)) __stack_chk_fail (void)
{
__fortify_fail ("stack smashing detected");
}
void __attribute__ ((noreturn)) internal_function __fortify_fail (const char *msg)
{
/* The loop is added only to keep gcc happy. */
while (1)
__libc_message (2, "*** %s ***: %s terminated\n",
msg, __libc_argv[0]