zoukankan      html  css  js  c++  java
  • pwnable.kr cmd1之write up

    看一下源代码:

     1 #include <stdio.h>
     2 #include <string.h>
     3 
     4 int filter(char* cmd){
     5     int r=0;
     6     r += strstr(cmd, "flag")!=0;
     7     r += strstr(cmd, "sh")!=0;
     8     r += strstr(cmd, "tmp")!=0;
     9     return r;
    10 }
    11 int main(int argc, char* argv[], char** envp){
    12     putenv("PATH=/fuckyouverymuch");
    13     if(filter(argv[1])) return 0;
    14     system( argv[1] );
    15     return 0;
    16 }

    我们看到filter函数过滤了flag,sh,tmp,我们输入的参数在system执行,然而我们过滤了一些参数,对于linux系统,我们的通配符还没有过滤。题中的思路是我们输入的参数过滤了flag,sh,tmp后system执行该参数。于是我们输入如下,并得到flag:

    补充:linux通配符

    * - 通配符,代表任意字符(0到多个)
    ? - 通配符,代表一个字符
    # - 注释
    / - 跳转符号,将特殊字符或通配符还原成一般符号
    | - 分隔两个管线命令的界定
    ; - 连续性命令的界定
    ~ - 用户的根目录
    $ - 变量前需要加的变量值
    ! - 逻辑运算中的""(not)
    / - 路径分隔符号
    >, >> - 输出导向,分别为"取代""累加"
    ' - 单引号,不具有变量置换功能
    " - 双引号,具有变量置换功能
    ` - quote符号,两个``中间为可以先执行的指令
    () - 中间为子shell的起始与结束
    [] - 中间为字符组合
    {} - 中间为命令区块组合
    Ctrl+C - 终止当前命令
    Ctrl+D - 输入结束(EOF),例如邮件结束的时候
    Ctrl+M - 就是Enter
    Ctrl+S - 暂停屏幕的输出
    Ctrl+Q - 恢复屏幕的输出
    Ctrl+U - 在提示符下,将整行命令删除
    Ctrl+Z - 暂停当前命令
    && - 当前一个指令执行成功时,执行后一个指令
    || - 当前一个指令执行失败时,执行后一个指令
    
     
    
     
    
    其中最常用的是*、?、[]和 ‘。下面举几个简单的例子:
    
    1,ls test*             <== *表示后面不论接几个字符都接受(没有字符也接受)
    
    2,ls test?            <== ?表示后面当且仅当接一个字符时才接受
    
    3,ls test???       <== ???表示一定要接三个字符
    
    4,cp  test[1~5]  /tmp      <== test1, test2, test3, test4, test5若存在,则复制到/tmp目录下
    
    5,cd  /lib/modules/' uname  -r'/kernel/drivers        <== 被 ' ' 括起来的命令先执行 
  • 相关阅读:
    The Quad
    将OrCAD Capture CIS的设计文件(.dsn)导入到PADS Logic VX.2.3
    OrCAD Capture CIS 16.6 将版本16.6的设计文件另存为版本16.2的设计文件
    Eclipse IDE 添加jar包到Java工程中
    PADS Logic VX.2.3 修改软件界面语言
    切换Allegro PCB Editor
    Allegro PCB Design GXL (legacy) 将brd文件另存为低版本文件
    Allegro PCB Design GXL (legacy) 设置自动保存brd文件
    Could not create an acl object: Role '16'
    windows 下apache开启FastCGI
  • 原文地址:https://www.cnblogs.com/liuyimin/p/7338117.html
Copyright © 2011-2022 走看看