码迷,mamicode.com
首页 > 其他好文 > 详细

pwnable.kr cmd2之write up

时间:2017-08-10 13:23:40      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:http   set   class   ack   comm   变量   ima   argc   string   

来看一下源代码:

#include <stdio.h>
#include <string.h>

int filter(char* cmd){
    int r=0;
    r += strstr(cmd, "=")!=0;
    r += strstr(cmd, "PATH")!=0;
    r += strstr(cmd, "export")!=0;
    r += strstr(cmd, "/")!=0;
    r += strstr(cmd, "`")!=0;
    r += strstr(cmd, "flag")!=0;
    return r;
}

extern char** environ;
void delete_env(){
    char** p;
    for(p=environ; *p; p++)    memset(*p, 0, strlen(*p));
}

int main(int argc, char* argv[], char** envp){
    delete_env();
    putenv("PATH=/no_command_execution_until_you_become_a_hacker");
    if(filter(argv[1])) return 0;
    printf("%s\n", argv[1]);
    system( argv[1] );
    return 0;
}

此题与cmd1思路一致,只是过滤了更多字符,

由于/也被过滤

但是在类Unix系统和其他一些操作系统中,pwd(英语:print working directory)用于输出当前工作目录的绝对路径

技术分享

补充:

/表示根目录:在计算机的文件系统中,根目录指文件系统的最上一级目录,它是相对子目录来说的;它如同一棵大树的“根”一般,所有的树杈以它为起点,故被命名为根目录。以微软公司开发的Windows操作系统为例:打开这台电脑(我的电脑、计算机),双击C盘就进入C盘的根目录。双击D盘就进入D盘的根目录。
Pwd表示全局变量,表示当前目录:

技术分享

 

pwnable.kr cmd2之write up

标签:http   set   class   ack   comm   变量   ima   argc   string   

原文地址:http://www.cnblogs.com/liuyimin/p/7338500.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!