php shell命令 交互_shell脚本怎么写需要终端交互的命令 - CSDN
精华内容
参与话题
  • PHPShell交互

    千次阅读 2012-11-24 10:38:39
    最近想使用PHP与Sheel进行交互PHP控制显示和高层的逻辑结构。Sheel调用linux的底层命令来实现快速及其时效性。 在网翻了一些帖子,发现一份强帖.. 由于PHP基本是用于WEB程序开发的,所以安全性成了人们考虑...

    转载地址:http://blog.csdn.net/dawdlerman/article/details/4766711

    最近想使用PHP与Sheel进行交互。PHP控制显示和高层的逻辑结构。Sheel调用linux的底层命令来实现快速及其时效性。
    在网翻了一些帖子,发现一份强帖..

    由于PHP基本是用于WEB程序开发的,所以安全性成了人们考虑的一个重要方面。于是PHP的设计者们给PHP加了一个门:安全模式。如果运行在安全模式下,那么PHP脚本中将受到如下四个方面的限制:

    1.执行外部命令  2.在打开文件时有些限制  3.连接MySQL数据库  4.基于HTTP的认证

    在安全模式下,只有在特定目录中的外部程序才可以被执行,对其它程序的调用将被拒绝。这个目录可以在php.ini文件中用 safe_mode_exec_dir指令,或在编译PHP是加上--with-exec-dir选项来指定,默认是/usr/local/php /bin。

    如果你调用一个应该可以输出结果的外部命令(意思是PHP脚本没有错误),得到的却是一片空白,那么很可能你的网管已经把PHP运行在安全模式下了。

    如何做?

    在PHP中调用外部命令,可以用如下三种方法来实现:

    1) 用PHP提供的专门函数

    PHP提供共了3个专门的执行外部命令的函数:system(),exec(),passthru()。

    system()

    原型:string system (string command [, int return_var])

    system()函数很其它语言中的差不多,它执行给定的命令,输出和返回结果。第二个参数是可选的,用来得到命令执行后的状态码。

    例子:

    system("/usr/local/bin/webalizer/webalizer");
    ?>

    exec()

    原型:string exec (string command [, string array [, int return_var]])

    exec() 函数与system()类似,也执行给定的命令,但不输出结果,而是返回结果的最后一行。虽然它只返回命令结果的最后一行,但用第二个参数array可以得到完整的结果,方法是把结果逐行追加到array的结尾处。所以如果array不是空的,在调用之前最好用unset()最它清掉。只有指定了第二个参数时,才可以用第三个参数,用来取得命令执行的状态码。

    例子:

    exec("/bin/ls -l");
    exec("/bin/ls -l", $res);
    #$res是一个数据,每个元素代表结果的一行
    exec("/bin/ls -l", $res, $rc);
    #$rc的值是命令/bin/ls -l的状态码。成功的情况下通常是0
    ?>

    passthru()

    原型:void passthru (string command [, int return_var])

    passthru() 只调用命令,不返回任何结果,但把命令的运行结果原样地直接输出到标准输出设备上。所以passthru()函数经常用来调用象pbmplus(Unix 下的一个处理图片的工具,输出二进制的原始图片的流)这样的程序。同样它也可以得到命令执行的状态码。

    例子:

    header("Content-type: image/gif");
    passthru("./ppmtogif hunte.ppm");
    ?>

    展开全文
  • [总结]C与Shell程序的交互

    千次阅读 2008-08-01 14:59:00
    C与Shell程序的交互一、C调用shellC程序调用shell脚本共有三种方式:system()、popen()、exec系列函数1)system(shell命令或shell脚本路径); system()会调用fork()产生子进程,由子进程来调用/bin/sh-c string来...
    C与Shell程序的交互
    一、C调用shell
    C程序调用shell脚本共有三种方式:system()、popen()、exec系列函数
    1)system(shell命令或shell脚本路径);
       
       system()会调用fork()产生子进程,由子进程来调用/bin/sh-c string来执行参数string字符串所代表的命令,此命令执行完后随即返回原调用的进程。在调用system()期间SIGCHLD 信号会被暂时搁置,SIGINT和SIGQUIT 信号则会被忽略。   
        返回值:如果system()在调用/bin/sh时失败则返回127,其他失败原因返回-1。若参数string为空指针(NULL),则返回非零值。如果 system()调用成功则最后会返回执行shell命令后的返回值,但是此返回值也有可能为system()调用/bin/sh失败所返回的127,因此最好能再检查errno 来确认执行成功。

    2)popen(char *command,char *type)   
     
        popen()会调用fork()产生子进程,然后从子进程中调用/bin/sh -c来执行参数command的指令。参数type可使用“r”代表读取,“w”代表写入。依照此type值,popen()会建立管道连到子进程的标准输出设备或标准输入设备,然后返回一个文件指针。随后进程便可利用此文件指针来读取子进程的输出设备或是写入到子进程的标准输入设备中。此外,所有使用文件指针(FILE*)操作的函数也都可以使用,除了fclose()以外。
        返回值:若成功则返回文件指针,否则返回NULL,错误原因存于errno中。注意:在编写具SUID/SGID权限的程序时请尽量避免使用popen(),popen()会继承环境变量,通过环境变量可能会造成系统安全的问题。
    该方法将原先标准输入由popen的第一个参数输入,将原先shell的标准输出输出到文件内容。用这个方法可以在C中调用强大的awk、sed等等工具,例如:
    FILE * fp;
        char buffer[80];
        //char CmdLine[]="cat YDJC.txt | awk -F '|' '{print $1}'";
        char CmdLine[255]
        sprintf(CmdLine,"cat %s | awk -F '|' '{print $1}'",reqfilename);
        if((fp=popen(CmdLine,"r"))==NULL)
        {
    ...
            }
        pclose(fp);

    二、shell调用C
        该方法确切地说不是调用C程序,而是调用可执行程序。
        Shell调用C编译生成的可执行文件,可以由int main(int argc, char * argv[])传入参数, 由main的返回值获得返回信息。
        注意argc总归大于等于一,argv[0]为调用其程序的命令,argv[1]~argv[argc]为真正的参数
    参考文献
    [1]http://ghostvic.cublog.cn
    [2]MSDN
    [3]http://www.kainatech.com.cn/frame.php?frameon=yes&referer=http%3A//www.kainatech.com.cn/viewthread.php%3Ftid%3D652
    展开全文
  • --------------------------------------------------------------------------------------------- ... SQLMAP渗透笔记之交互shell命令执行(即os参数的使用) ----------------------------------




    ---------------------------------------------------------------------------------------------


                           SQLMAP渗透笔记之交互写shell及命令执行(即os参数的使用)




    ---------------------------------------------------------------------------------------------


    1.执行系统命令(windows系统): --os-cmd=ipconfig
    sqlmap.py -u "http://www.xx.com/aa.aspx?id=123" --os-cmd=ipconfig


    执行后根据提示选择网站语言
    然后回车,指定目标站点根目录,然后继续回车即可完整执行命令


    2.执行shell: --os-shell
    sqlmap.py -u "http://www.xx.com/aa.aspx?id=123" --os-shell




    执行后根据提示选择网站语言,然后回车,指定目标站点根目录后回车,输入命令即可执行,也可起到提权的作用。






    执行命令后会在网站根目录生成两个临时文件:tmpbxbxz.php   tmpuoiuz.php(此文件为上传页面)




    注意:需要有足够大的权限方可执行命令




    查看网站权限


    sqlmap.py -u "http://www.xx.com/aa.aspx?id=123" --privileg
    展开全文
  • 交互shell(Interactive Shells)

    千次阅读 2019-11-09 15:54:48
    本文来自于: ...在linux系统中,我们打开terminal就是开启了一个Bash进程,也就是开启了一个shell,此时的shell就是interactive shell。 下图就开启了一个interactive shell。echo $-时包含i ...

    本文来自于:

    https://tiswww.case.edu/php/chet/bash/bashref.html#Interactive-Shells

     

    在linux系统中,我们打开terminal就是开启了一个Bash进程,也就是开启了一个shell,此时的shell就是interactive shell。

    下图就开启了一个interactive shell。echo $-时包含i

    什么是interactive shell? 

    1. 启动shell时,指定了-i选项,或

    2. 启动shell时,不存在non-option参数(即:全是 选项参数),不指定-c选项,且shell的stdin和stderr都连接到terminal(由isatty(3)所决定)

    interactive shell一般都 读&写 用户的terminal

    启动interactive shell时,可以使用-s调用选项(-s invocation option)来可以设置 位置参数(positionial parameter)

     

    6.3.2 Is this Shell Interactive? 

    如何确定shell是不是 interactive shell?

    查看 特殊参数(special parameter) - 的值即可。如果-的值包含了i,则就是shell就是 interactive的;

    另一种方式是检查PS1变量

    1. interactive shell时,PS1是设置过的;

    2. non-interactive shell时,PS1则是未设置的

    脚本中,查看 Bash运行在interactive下吗?

    case "$-" in
    *i*)	echo This shell is interactive ;;
    *)	echo This shell is not interactive ;;
    esac
    
    # 或者检查 PS1变量
    if [ -z "$PS1" ]; then
            echo This shell is not interactive
    else
            echo This shell is interactive
    fi
    # 直接检查下:
    marvin@vm1:~/sf$ echo $-
    himBHs         
    marvin@vm1:~/sf$ 
    # 直接检查下PS1:
    marvin@vm1:~/sf$ echo $PS1
    \[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$
    marvin@vm1:~/sf$ 
    

     

    6.3.3 Interactive Shell Behavior 

    Interactive shell独有的行为( 和 non-interactive shell 不同的行为)

    1. Interactive shell 会 读&执行 Bash Startup Files

    2. Job Control默认开启。Job Control开启时,Bash忽略掉 键盘生成的Job Control 信号

        1. sigttin

        2. sigttou

        3. sigtstp

    3. 读取第一行命令前,Bash先 expand&display PS1;

       读取多行命令 的第二行及后续行 命令前,Bash先 expands&display PS2;

       Bash读取命令完成,但,尚未执行命令前,Bash先 expands&display PS0

    4. 在打印出主提示符(primary prompt),即$PS1 前,Bash把 PROMPT_COMMAND变量的值 作为命令执行

    5. 利用readline命令 从用户terminal中读取 命令

    6. 读取命令时,当Bash从stdin中收到EOF,Bash不是立即退出,而是查看ignoreeof选项的值来设置-o

    7. command history和history expansion是默认启用的。Bash把命令历史存储到 $HISTFILE 文件中

    8. alias expansion默认是启用的

    9. 不存在任何trap时,Bash忽略sigterm

    10. 不存在任何trap时,sigint会被捕获并被处理。sigint会中断某些shell builtins

    11. 如果开启了shell选项 huponexit,interactive&login shell在退出时,给所有job发送 sighup

    12. -n调用选项被忽略,set -n没有任何作用

    13. 取决于三个shell变量 MAIL, MAILPATH, MAILCHECK的值,Bash会周期性检查mail

    14. set -u已被启用时,由于 引用unbound shell变量 而引起的expansion error 并不会使得shell退出

          也就是说,当set -u关闭时,引用unbound shell变量会导致shell直接退出

    15. ${var:?word}时,由于 var未设置,或var为null 而引起的expansion error 并不会使得shell退出

    16. shell builtins 所遭遇的 redirection error 并不会使得shell退出

    17. 运行在POSIX mode时,返回error status的某个shell builtins 并不会使得shell退出

    18. 运行失败的exec 并不会使得shell退出

    19. 解析器语法错误 并不会使得shell退出

    20. 对cd命令的目录参数 简单的拼写纠正 默认开启。shopt的cdspell选项控制着 cd命令的目录参数 简单的拼写纠正

    21. shell会检查TMOUT变量的值,如果打印了PS1之后,在指定的秒数之内未读取命令,则shell就退出

     

    展开全文
  • PHP 常用命令行

    万次阅读 2017-04-13 16:37:51
    1、PHP运行指定文件php -f test.php (-f 可省略) 2、命令行直接运行PHP代码php -r "phpinfo();" 如果结果太长,还可以 php -r “phpinfo();” | less 分页展示3、交互模式运行PHP简单的运算 control + c/z 或者 ...
  • 也算写过一些Bash脚本的人了,不过对与这几个概念,还不是很清楚,于是恶补了一下。...交互式模式就是shell等待你的输入, 并且立即执行你提交的命令。这种模式被称作交互式是因为shell与用户进行交互
  • shell脚本赋值的5种方法

    万次阅读 2012-02-21 12:44:31
    1. Shell中的变量类型 Shell中的变量可以分为环境变量、位置变量、预定义的特殊变量以及用户自定义变量、 2. 环境变量 Shell中的环境变量是一类Shell预定义变量,是用于设置系统运行环境的变量,环境变量由...
  • shell脚本telnet登录

    千次阅读 2011-08-27 15:43:34
    #!/bin/bash ( echo "user" sleep 2 echo "passwd" sleep 3 echo "do something in remote device" sleep 3 e
  • 前段时间有个需求,需要利用crontab定时往某个FTP上传文件,原以为linux中带的ftp命令只支持交互式的操作,没法在命令行下使用,所以后来打算利用PHP中提供的ftp命令来做,但是很不幸的发现ftp模块不是PHP的标准模块...
  • 【Linux】shell脚本概述

    千次阅读 热门讨论 2020-08-05 11:40:18
    文章目录前言shell脚本的概念shell脚本的结构 前言 本系列为循序渐进学运维系列的shell脚本实战部分,从零带你学脚本shell脚本的概念 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一...
  • /*** * 终端给提示获取用户数据 */ function read($str = '请输入') { //提示输入 fwrite(STDOUT, $str . ":"); //获取用户输入数据 $result = trim(fgets(STDIN)); return trim($result);...效果
  • shell编程之给变量赋值的五种方法

    万次阅读 2015-10-15 15:05:44
    1. Shell中的变量类型 Shell中的变量可以分为环境变量、位置变量、预定义的特殊变量以及用户自定义变量、 2. 环境变量 Shell中的环境变量是一类Shell预定义变量,是用于设置系统运行环境的变量,环境...
  • 通过执行系统命令,我们可以调用系统的一些功能,甚至能与其他语言进行交互。 1 system() : system — 执行外部程序(命令行),并且显示输出 这个函数会将结果直接进行输出 (注意:是直接输出区别于返回值,因为这个...
  • 前段时间有个需求,需要利用crontab定时往某个FTP上传文件,原以为linux中带的ftp命令只支持交互式的操作,没法在命令行下使用,所以后来打算利用PHP中提供的ftp命令来做,但是很不幸的发现ftp模块不是PHP的标准模块...
  • SqlMap进阶使用学习笔记

    万次阅读 2020-06-19 09:26:07
    文章目录前提条件文件操作命令执行和msf的结合原理剖析 前提条件 网站必须是root权限 需要知道网站的绝对路径 GPC为off,php主动转义的功能关闭 ...–os-shell #系统交互shell 和msf的结合 –os-pwn
  • Linux 命令行中PHP 常用命令

    千次阅读 2018-01-23 16:18:46
    PHP 常用命令行 1、PHP运行指定文件 php -f test.php (-f 可省略) 1 2 2、命令行直接运行PHP代码 php -r "phpinfo();" 1 2 如果结果太长,还可以 php -r “phpinfo();” | less 分页展示...
  • 记一次曲折的渗透测试经历

    万次阅读 2016-04-22 10:33:38
    昨天把jexboss脚本整合到我的多线程框架里,扫了一遍全国jboss,发现一千多个shell.工具地址在:https://github.com/Xyntax/POC-T随意拿了一个看似大厂商的,作本次入侵测试发现传送门通过jexboss拿到shell,看到是...
  • SQL注入写WebShell方式小结

    万次阅读 2018-12-09 11:08:43
    传统的SQL语句写shell 通过SQL注入select into outfile实现,如: 1' union select 1,'<?php eval($_POST[a]);?>' INTO OUTFILE '/var/www/tmp/nb.php'# sqlmap写shell 前提都是需要对目标目录...
  • perl 、shell、python之shell脚本入门

    万次阅读 2014-07-23 15:37:05
    终于到shell 脚本这章了,在以前笔者卖了好多关子说shell脚本怎么怎么重要,确实shell脚本在linux系统管理员的运维工作中非常非常重要。下面笔者就带你正式进入shell脚本的世界吧。 到现在为止,你明白什么是shell...
  • Linux反弹shell

    千次阅读 2020-08-30 11:15:32
    目录 Bash反弹shell Python反弹shell 其他命令反弹shell 写入命令到定时任务文件 写入SSH公钥 ...当我们可以在远程Linux主机上执行任意...Linux 反弹 shell 使用下面这条命令,该命令弹回来的shell是不可交互的,...
1 2 3 4 5 ... 20
收藏数 21,216
精华内容 8,486
关键字:

php shell命令 交互