PHP $O00OO0=urldecode & eval 解密,记一次商业源码的去后门

吾爱主题 阅读:174 2021-10-26 15:01:00 评论:0

代码如下:

$O00OO0=urldecode("%6E1%7A%62%2F%6D%615%5C%76%740%6928%2D%70%78%75%71%79%2A6%6C%72%6B%64%679%5F%65%68%63%73%77%6F4%2B%6637%6A");$O00O0O=$O00OO0{3}.$O00OO0{6}.$O00OO0{33}.$O00OO0{30};$O0OO00=$O00OO0{33}.$O00OO0{10}.$O00OO0{24}.$O00OO0{10}.$O00OO0{24};$OO0O00=$O0OO00{0}.$O00OO0{18}.$O00OO0{3}.$O0OO00{0}.$O0OO00{1}.$O00OO0{24};$OO0000=$O00OO0{7}.$O00OO0{13};$O00O0O.=$O00OO0{22}.$O00OO0{36}.$O00OO0{29}.$O00OO0{26}.$O00OO0{30}.$O00OO0{32}.$O00OO0{35}.$O00OO0{26}.$O00OO0{30};eval($O00O0O("JE8wTzAwMD0iU1p6QXBDSHR4UlVHd2dRdk5CVHlvUHFKaklPbWVpcmZGY2RsS3VuYmhXWVZYYUVrTE1Ec2dHRE1XZXNkbmJ2eW1FUkNJT0ZOVFpydHV6S0JQZmtvSHBRWGx3U2NKWXhqaUxVVmhBcWFacTltTHNNbEdZSVRjTk1WaTFJSHZYR0h2WGFTdlZqSUYxYkhpMEhVYkh6U2lnTXd6WG5OaXk0ZkttV1h4MkpDemVib3YwamdqVmpnWU5RRmJqdFlianRvRlZISWJnUVFLbVQvWkU9PSI7ZXZhbCgnPz4nLiRPMDBPME8oJE8wT08wMCgkT08wTzAwKCRPME8wMDAsJE9PMDAwMCoyKSwkT08wTzAwKCRPME8wMDAsJE9PMDAwMCwkT08wMDAwKSwkT08wTzAwKCRPME8wMDAsMCwkT08wMDAwKSkpKTs="));

借用 javascript eval 解密思路 将 eval 替换成 echo, 将 echo 得到的内容覆盖掉 eval 的内容

$O00OO0=urldecode("%6E1%7A%62%2F%6D%615%5C%76%740%6928%2D%70%78%75%71%79%2A6%6C%72%6B%64%679%5F%65%68%63%73%77%6F4%2B%6637%6A");$O00O0O=$O00OO0{3}.$O00OO0{6}.$O00OO0{33}.$O00OO0{30};$O0OO00=$O00OO0{33}.$O00OO0{10}.$O00OO0{24}.$O00OO0{10}.$O00OO0{24};$OO0O00=$O0OO00{0}.$O00OO0{18}.$O00OO0{3}.$O0OO00{0}.$O0OO00{1}.$O00OO0{24};$OO0000=$O00OO0{7}.$O00OO0{13};$O00O0O.=$O00OO0{22}.$O00OO0{36}.$O00OO0{29}.$O00OO0{26}.$O00OO0{30}.$O00OO0{32}.$O00OO0{35}.$O00OO0{26}.$O00OO0{30};$O0O000="SZzApCHtxRUGwgQvNBTyoPqJjIOmeirfFcdlKunbhWYVXaEkLMDsgGDMWesdnbvymERCIOFNTZrtuzKBPfkoHpQXlwScJYxjiLUVhAqaZq9mLsMlGYITcNMVi1IHvXGHvXaSvVjIF1bHi0HUbHzSigMwzXnNiy4fKmWXx2JCzebov0jgjVjgYNQFbjtYbjtoFVHIbgQQKmT/ZE==";eval('?>'.$O00O0O($O0OO00($OO0O00($O0O000,$OO0000*2),$OO0O00($O0O000,$OO0000,$OO0000),$OO0O00($O0O000,0,$OO0000))));

继续替换 eval 内容,得带如下代码,然后在浏览器中查看源码即可

?
1 2 3 4 5 6 <?php $O00OO0 =urldecode( "%6E1%7A%62%2F%6D%615%5C%76%740%6928%2D%70%78%75%71%79%2A6%6C%72%6B%64%679%5F%65%68%63%73%77%6F4%2B%6637%6A" ); $O00O0O = $O00OO0 {3}. $O00OO0 {6}. $O00OO0 {33}. $O00OO0 {30}; $O0OO00 = $O00OO0 {33}. $O00OO0 {10}. $O00OO0 {24}. $O00OO0 {10}. $O00OO0 {24}; $OO0O00 = $O0OO00 {0}. $O00OO0 {18}. $O00OO0 {3}. $O0OO00 {0}. $O0OO00 {1}. $O00OO0 {24}; $OO0000 = $O00OO0 {7}. $O00OO0 {13}; $O00O0O .= $O00OO0 {22}. $O00OO0 {36}. $O00OO0 {29}. $O00OO0 {26}. $O00OO0 {30}. $O00OO0 {32}. $O00OO0 {35}. $O00OO0 {26}. $O00OO0 {30}; ?><?php echo $_SERVER [ 'REMOTE_ADDR' ] . "\r\n" ; echo $_SERVER [ 'SERVER_NAME' ]; ?>

代码已经被解出来了

这份商业源码还留有两个后门, 都存在于加密文件中
一个的思路是每天首次访问网站时, 向授权服务器发请求, 检查网站是否在授权列表, 如果不存在则删除某个加密文件 (后台登陆文件)

另一个思路是后台登陆文件继承自 Think 基类, 没有登陆权限的校验, 有一个方法, 可以列出所有管理用户, 可以更改任意用户的密码.

没有用扩展的加密都是伪加密!!

服务器之家小编补充:最后通过源码方式查看就可以获取代码了

$O00OO0=urldecode 解密

微盾类似解密,一般都以

<?php $O00OO0=urldecode("%6E1%7A%62%2……; ?>

形式出现,记录下步骤:

示例:

$O00OO0=urldecode("%6E1%7A%62%2F%6D%615%5C%76%740%6928%2D%70%78%75%71%79%2A6%6C%72%6B%64%679%5F%65%68%63%73%77%6F4%2B%6637%6A");$O00O0O=$O00OO0{3}.$O00OO0{6}.$O00OO0{33}.$O00OO0{30};$O0OO00=$O00OO0{33}.$O00OO0{10}.$O00OO0{24}.$O00OO0{10}.$O00OO0{24};$OO0O00=$O0OO00{0}.$O00OO0{18}.$O00OO0{3}.$O0OO00{0}.$O0OO00{1}.$O00OO0{24};$OO0000=$O00OO0{7}.$O00OO0{13};$O00O0O.=$O00OO0{22}.$O00OO0{36}.$O00OO0{29}.$O00OO0{26}.$O00OO0{30}.$O00OO0{32}.$O00OO0{35}.$O00OO0{26}.$O00OO0{30};eval($O00O0O("JE8wTzAwMD0iV0FLQ1JIbHdPdnh0cmRHVUxFbmFOSlBlamZGUXpaTUJjc29nSXVrYnBxWFR5bVZoU2lEWVpKUXlvaURPZEZXblBZdFV2U2xmVEJleEt6a0dxVmhFSHdnTVhDdUFyUmFqTE5tcGJjSXNlSTlPZmlKVHlNdVR5TkROUXlvem8wbVVaTEJyVnlCWWVqMGN4Wm1xWGNEN0JpTTlYTmtxSExYQ1hObUxZeVg3WHlvNFF5b3pVUzlqbWt3Y3h0azRYRDByZDJtNGZhR2dRam45SUdnVHlLOCtYSjBRIjtldmFsKCc/PicuJE8wME8wTygkTzBPTzAwKCRPTzBPMDAoJE8wTzAwMCwkT08wMDAwKjIpLCRPTzBPMDAoJE8wTzAwMCwkT08wMDAwLCRPTzAwMDApLCRPTzBPMDAoJE8wTzAwMCwwLCRPTzAwMDApKSkpOw=="));

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 <?php $O00OO0 =urldecode( "%6E1%7A%62%2F%6D%615%5C%76%740%6928%2D%70%78%75%71%79%2A6%6C%72%6B%64%679%5F%65%68%63%73%77%6F4%2B%6637%6A" ); //n1zb/ma5vt0i28-pxuqy*6lrkdg9_ehcswo4+f37j echo '第一步生成:' , $O00OO0 ; echo '<br /><br />********************************************************<br /><br />' ;   $O00O0O = $O00OO0 {3}. $O00OO0 {6}. $O00OO0 {33}. $O00OO0 {30}; $O0OO00 = $O00OO0 {33}. $O00OO0 {10}. $O00OO0 {24}. $O00OO0 {10}. $O00OO0 {24}; $OO0O00 = $O0OO00 {0}. $O00OO0 {18}. $O00OO0 {3}. $O0OO00 {0}. $O0OO00 {1}. $O00OO0 {24}; $OO0000 = $O00OO0 {7}. $O00OO0 {13}; $O00O0O .= $O00OO0 {22}. $O00OO0 {36}. $O00OO0 {29}. $O00OO0 {26}. $O00OO0 {30}. $O00OO0 {32}. $O00OO0 {35}. $O00OO0 {26}. $O00OO0 {30}; echo '第二步生成:' , $O00O0O ; echo '<br /><br />********************************************************<br /><br />' ;   //上面解出来 $O00O0O=base64_decode; //即然 $O00O0O=base64_decode那么把下面的代码改一下,eval是用来执行php代码,这里不需要执行,只需要解出php代码即可,那么去掉eavl 并把$O00O0O换成上面解出来的值 //eval ($O00O0O ("JE8wTzAwMD0iV0FLQ1JIbHdPdnh0cmRHVUxFbmFOSlBlamZGUXpaTUJjc29nSXVrYnBxWFR5bVZoU2lEWVpKUXlvaURPZEZXbl BZdFV2U2xmVEJleEt6a0dxVmhFSHdnTVhDdUFyUmFqTE5tcGJjSXNlSTlPZmlKVHlNdVR5TkROUXlvem8wbVVaTEJyVnlCWWVqMG N4Wm1xWGNEN0JpTTlYTmtxSExYQ1hObUxZeVg3WHlvNFF5b3pVUzlqbWt3Y3h0azRYRDByZDJtNGZhR2dRam45SUdnVHlLOCtYSj BRIjtldmFsKCc/PicuJE8wME8wTygkTzBPTzAwKCRPTzBPMDAoJE8wTzAwMCwkT08wMDAwKjIpLCRPTzBPMDAoJE8wTzAwMCwkT0 8wMDAwLCRPTzAwMDApLCRPTzBPMDAoJE8wTzAwMCwwLCRPTzAwMDApKSkpOw==")); //修改后变成 echo '第三步生成:' ; echo ( base64_decode ( "JE8wTzAwMD0iV0FLQ1JIbHdPdnh0cmRHVUxFbmFOSlBlamZGUXpaTUJjc29nSXVrYnBxWFR5bVZoU2lEWVpKUXlvaURPZEZXbl BZdFV2U2xmVEJleEt6a0dxVmhFSHdnTVhDdUFyUmFqTE5tcGJjSXNlSTlPZmlKVHlNdVR5TkROUXlvem8wbVVaTEJyVnlCWWVqMG N4Wm1xWGNEN0JpTTlYTmtxSExYQ1hObUxZeVg3WHlvNFF5b3pVUzlqbWt3Y3h0azRYRDByZDJtNGZhR2dRam45SUdnVHlLOCtYSj BRIjtldmFsKCc/PicuJE8wME8wTygkTzBPTzAwKCRPTzBPMDAoJE8wTzAwMCwkT08wMDAwKjIpLCRPTzBPMDAoJE8wTzAwMCwkT0 8wMDAwLCRPTzAwMDApLCRPTzBPMDAoJE8wTzAwMCwwLCRPTzAwMDApKSkpOw==" )); echo '<br /><br />********************************************************<br /><br />' ; //上页那步输出来代码为: /* $O0O000="WAKCRHlwOvxtrdGULEnaNJPejfFQzZMBcsogIukbpqXTymVhSiDYZJQyoiDOdFWnPYtUvSlfTBexKzkGqVhEHwgMXCuArRajLNmpbcIseI9OfiJTyMuTyNDNQyozo0mUZLBrVyBYej0cxZmqXcD7BiM9XNkqHLXCXNmLYyX7Xyo4QyozUS9jmkwcxtk4XD0rd2m4faGgQjn9IGgTyK8+XJ0Q"; eval('?>'.$O00O0O($O0OO00($OO0O00($O0O000,$OO0000*2),$OO0O00($O0O000,$OO0000,$OO0000),$OO0O00($O0O000,0,$OO0000)))); */ //同样,不需要eval,改成echo $O0O000 = "WAKCRHlwOvxtrdGULEnaNJPejfFQzZMBcsogIukbpqXTymVhSiDYZJQyoiDOdFWnPYtUvSlfTBexKzkGqVhEHwgMXCuArRajLNmpbcIseI9OfiJTyMuTyNDNQyozo0mUZLBrVyBYej0cxZmqXcD7BiM9XNkqHLXCXNmLYyX7Xyo4QyozUS9jmkwcxtk4XD0rd2m4faGgQjn9IGgTyK8+XJ0Q" ; echo '最终代码是:(这是我用htmlspecialchars函数把标签转换了)' .htmlspecialchars( '?>' . $O00O0O ( $O0OO00 ( $OO0O00 ( $O0O000 , $OO0000 *2), $OO0O00 ( $O0O000 , $OO0000 , $OO0000 ), $OO0O00 ( $O0O000 ,0, $OO0000 ))));   ?>

上面两种方法小编测试了第一种方法,简单粗暴。

原文链接:https://www.ddnpc.com/php-urldecode-eval.html

可以去百度分享获取分享代码输入这里。
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

【腾讯云】云服务器产品特惠热卖中
搜索
标签列表
    关注我们

    了解等多精彩内容