Kiwi CTF 2015 - Gaychal [rev80]

題目

I found some suspicious PHP code on my website. The code was attached to my theme’s footer file.

It’s either the DRM of the theme, or a virus; however it’s encoded and I can’t figure it out. Do that for me please :)

Download

一支肥大的 php code

還蠻現實的題目,webshell or backdoor 都會 encode/encrypt 一下,混淆視聽

過程

目標是還原原始的 php script ,是以 eval 被跑起來的,那就一層層的剝開吧、

方法是把 eval 拿掉,印出真正的 code, 但解開第一層後發現裡面是另外一組 eval,想必再更內層也會是這様的模式,不可能手工折。

於是就將計就計,用 php 寫段 script 把每一層的 eval 都拿掉

$a = '.....';
while(strpos($a, 'eval') !== false){
    $a = str_replace("eval", '$a=', $a);
    eval($a);
    echo strlen($a).PHP_EOL;
}
eval($a);

跑到最內層會看到印出

the flag is a8cc6eb651a10688e12779b1558193f8

直接送 incorrect, 這是最後一個 eval 出來的結果,印出這行的 code 想必有東西

把最後的 $a 印出是

echo "the flag is ".md5("5+5=9<-- fix this"),PHP_EOL;

fix 一下就跑出 flag 了

php -r 'echo "the flag is ".md5("5+5=10<-- fix this"),PHP_EOL;'
![](http://user-image.logdown.io/user/14835/blog/14031/post/384209/07ZNEo5fTjiAqtuQvbFd_QQ%E6%88%AA%E5%9B%BE20151223190807.png)