CTFHub ShellShock解题记录


【CTFHub ShellShock解题记录】,破壳漏洞,出现于2014年
可以通过以下命令来判断是否存在这个漏洞
env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
如果结果中有 说明存在这个漏洞,执行了echo 这个语句 。
大致原理:
bash shell中定义环境变量通过函数名称来调用时,正常情况下是这样
但是对于存在漏洞的环境下,Bash对于环境变量只是检测到函数,并且从’{‘开始执行,但是并没有在’}'后停止,也就是说定义在函数体外shell命令也会执行,所以env x='() { :;}; echo ' 输出了 。
题目打开,通过蚁剑连接
查看() 和上题一样还是没有禁用函数 。正常情况下蚁剑已经实现通过漏洞,直接拿到shell,但是这题不行 。
得手工,上传shell.php和test.php,用来存放命令执行结果
可能是因为test.php文件为空上传报错,但是还是传上去了,刷新一下,

CTFHub ShellShock解题记录

文章插图
> /var/www/html/test.php");error_log("admin",1);//mail("admin@localhost","","","","");?>
发现在/目录有flag文件,和之前题目一样,这次直接通过tac来读取文件 。
通过来设置环境变量,默认定义的环境变量名必须以PHP_开头 。
()函数会在执行sh -c -t -i触发
在浏览器访问shell.php,再打开tes,php,拿到flag
搞定
参考文章