wustctf2020_getshell 使用checksec查看: 只开启了一个栈不可执行,没开Canary,考虑栈溢出题目。 拉进IDA中查看: 主函数中直接给漏洞函数,跟进: read()函数,能读取0x20的数据,buf距离ebp0x18,因为这是个32位的程序,ebp+4后还能放下一个one_gadget 首先考虑下这个程序本身有没有get_shell的函数,通过搜索字符串可以发现函数shell(): ok了,这题直接秒了。 exp: