Pwn-exec 1>&0
在做WUSTCTF中的closed这道题时发现的这个问题,经过一番查阅后才知道了作法
先看原题
大概意思为:
- 先向程序中输入字符串
- 然后一次执行
close(1);close(2);
最后返回shell函数也就是system(/bin/sh)
一句简短的payload就可以返回shell
而exec 1>&0
这段仅有的payload的分析我们可以先引申到linux的EXEC与文件描述符
close(1);close(2);
便是关闭了 标准输出和 标准错误输出
但我们就可以使用重定位文件描述符的办法,将标准输出重定位到标准输入上来达到返回shell的目的(因为默认打开一个终端后,0,1,2都指向的是当前终端,所以该语句相当于重启了标准输出,也就可以看到程序的输出了)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 偏有宸机!
评论