pwnable.kr shellshock

这题是 shellshock 漏洞的实际应用,之前在整理 web 渗透的时候接触过,但是没有利用过,现在遇到了就记下来。

之前的文章里对 shellshock 简单介绍 过,这里再推荐一篇 shellshock 详细介绍

题目是这样的:


直接 ssh 上去看一下


目录下有 4 个文件,其中 shellshock 是设置了 s 标识的。

看看源码


shellshock.c

代码很简单,一开始调用 setresuid 和 setresgid 把进程的 ruid、euid 和 suid 设置为进程当前的 egid,由于设置了 s 标识,因此 egid 实际上是 root 所在用户组的 id。接着调用了 bash,注意到这里是以 root 的身份调用的。

既然是 shellshock,先试试最简单的


发现输出了 test。分析一下这条指令实际上做了什么。首先在当前环境中定义了一个 X 函数,函数体是 { :; },实际上类似于 return true,之后在函数体外多加了一条语句 echo "test",这条语句会在后面调用 /home/shellshock/bash fork 新的 bash 进程时被调用,这里的调用是在初始化环境的时候调用的,换句话说,就是 fork 出来的新 bash 进程会在初始化自己的环境时执行函数定义后面的语句

我们知道 shellshock 中以 root 身份调用了 bash,那只要用同样的方法,让这个 bash 进程在初始化环境的时候输出 flag 就行了,于是可以:


得到结果

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容