1、get_shell
打开题目,发现有一个题目场景,然后看题目描述说运行就能拿到shell,所以先运行一下,看看会发生什么,在虚拟机终端上输入nc+ip地址+ip端口(连接该网址),然后输入cat flag

攻防世界新手pwn get_shell和CDfsb
发现运行一下flag就真的出来了。

2.CDfsb
这道题也给了一个题目场景,先尝试上面的方法将其运行一下,看看会发生什么
攻防世界新手pwn get_shell和CDfsb
结果并不像上题这么直接,该题还给了一个附件,将其下载下来,先用checksec分析一下文件
攻防世界新手pwn get_shell和CDfsb
发现该文件是有Canary保护和NX保护然后是32位的,再放入32位ida中反编译看看
攻防世界新手pwn get_shell和CDfsb
发现当pwnme的值等于8时,才会输出flag,所以查找pwnme所在的位置在bss段(tips:bss段为未初始化的数据的全局变量),题目描述中也提到printf,这提示我们可以从这下手,将pwnme的值改成8,在ida中查看第二个printf的地址使用gdb在第二个printf的地址上下一个断点)

攻防世界新手pwn get_shell和CDfsb

攻防世界新手pwn get_shell和CDfsb
攻防世界新手pwn get_shell和CDfsb
知道了偏移量是10,接着打payload(这里参考了wp里的代码):
攻防世界新手pwn get_shell和CDfsb
运行一下即可得到flag;

攻防世界新手pwn get_shell和CDfsb

相关文章: