PHP $O00OO0=urldecode & 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};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 内容,得带如下代码,然后在浏览器中查看源码即可
<?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=="));
<?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)))); ?>
上面两种方法小编测试了第一种方法,简单粗暴。
上一篇: 联想笔记本怎么开启虚拟化技术?