BUU-test_your_nc

原始信息

一个test文件,一个远程的靶机。

解题

检查文件保护机制

┌──(kali㉿kali)-[~/ctf]
└─$ sudo checksec test
[!] Could not populate PLT: invalid syntax (unicorn.py, line 110)
[*] '/home/kali/ctf/test'
Arch: amd64-64-little
RELRO: Partial RELRO # 重定位(.got和.plt)表只读
Stack: No canary found # 能栈溢出
NX: NX enabled # 不可执行内存
PIE: PIE enabled # 开启本地ASLR地址随机化

IDA Pro解析

  1. 使用IDA 64默认打开test文件,shift+F12 列出所有的字符串。

  2. 找到 '/bin/sh' 点击跳转,到对应位置后,按下 X 跳转,并且跳转后选中 rdi 使用 F5 一键反汇编,得到C源码:

    int __cdecl main(int argc, const char **argv, const char **envp)
    {
    system("/bin/sh");
    return 0;
    }

    表示无论输入什么都会使用 /bin.sh 去执行,也就是cmd窗口不受权限限制。

    nc连接后直接获取flag即可

nc一键flag

$ nc node5.buuoj.cn 25007
cat flag
# 这里得到flag

NSSCTF-esayoverflow

原始信息

#include<stdio.h>
int main()
{
setbuf(stdin,0);
setbuf(stdout,0);
setbuf(stderr,0);
puts("Input something");
char name[30];
int number=0;
gets(name);
if(number!=0){
puts("You win.");
system("cat flag");
}
return 0;
}

解题-栈溢出

在清理堆栈