PHP使用命令行传递 GET/POST 参数

2017年12月13日

话不多说,先贴代码,代码放到需要传入GET或POST参数的最上面!

<?php
if(isset($argv) && count($argv)>='2'){
  $_G=array_search('-G',$argv);
  $_P=array_search('-P',$argv);
  if(isset($_G) && isset($_P)){
    //同时传入了GET和POST参数
    parse_str($argv[$_G+1],$G_parr);
    parse_str($argv[$_P+1],$P_parr);
    $_GET=$G_parr;
    $_POST=$P_parr;
  }elseif(isset($_G) && !isset($_P)){
    //只传入了GET参数
    parse_str($argv[$_G+1],$G_parr);
    $_GET=$G_parr;
  }elseif(!isset($_G) && isset($_P)){
    //只传入了POST参数
    parse_str($argv[$_P+1],$P_parr);
    $_POST=$P_parr;
  }
}

如何使用? 

首先,我们先创建一个 argv.php 文件以供本次Demo用 该文件内容如上代码

1.如果你要传递 GET 参数,那么就这样 

php argv.php -G "url=www.heimao.org&pwd=woaini"

QQ截图20171213151324.png

我们可以看到POST参数是空的,因为我们没有传入POST参数

2.如果你要传递 POST 参数,那么就这样

php 1.php -P "url=www.heimao.org&pwd=woaini"

QQ截图20171213151324.png

3.如果你既传递 GET 和 POST 参数,那么就这样

php 1.php -P "url=www.heimao.org&pwd=woaini" -G "url=www.heimao.org&pwd=woaini"

QQ截图20171213151324.png

使用方法可以归纳为

    只传入GET参数

    php <file path> -G "<data>"

    eg: php test.php -G "url=www.heimao.org&pwd=woaini"

    只传入POST参数

    php <file path> -P "<data>"

    eg: php test.php -P "url=www.heimao.org&pwd=woaini"

    即传入GET又传入POST

    php <file path> -G "<data>" -P "<data>"

    eg: php test.php -G "url=www.heimao.org&pwd=woaini" -P "qq=1361289290&pwd=woaini"

上述所传入的参数,都可以使用对应的全局变量 $_GET 或 $_POST 得到



分类:研究 | 标签: php命令行cmdgetpost | 查看:228
burpsuite基础认证爆破

发表评论: