垃圾堆中的精品

垃圾堆中的精品

破解阿狸子订单

首先声明,个人学习使用,请勿商用,支持正版。

接到一个xxx用户发来的任务,需要破解此系统。第一时间打开发现是混淆加密。拿到在线解密网站无果,也就只能手动解密了。

文件分为PHP运行区和数据区,重点看下运行区域。首先格式化,打印下变量,将最后的eval缓存echo,发现未找到方法。那就在上面异步打印下 $IlllI111I 变量。打印结果为base64__decode,注意是自定义的一个函数,不是base64_decode。所以再去源码里搜索 function base64__decode。

在TP的公共文件下搜索得到该方法,将方法复制到解密文件

function base64__decode($string){
    $data = str_replace(array('-','_'),array('+','/'),$string);
    $mod4 = strlen($data) % 4;
    if ($mod4) { $data .= substr('====', $mod4); }
    return base64_decode($data);
}

然后继续打印,得到

$I1I1llI1l=$l1IIl1l1I{14}.$l1IIl1l1I{1}.$l1IIl1l1I{15}.$l1IIl1l1I{10}.$l1IIl1l1I{3}.$l1IIl1l1I{8}.$l1IIl1l1I{10}.$l1IIl1l1I{6}.$l1IIl1l1I{3}.$l1IIl1l1I{5}.$l1IIl1l1I{2}.$l1IIl1l1I{7}.$l1IIl1l1I{6}.$l1IIl1l1I{10}.$l1IIl1l1I{7}.$l1IIl1l1I{6}.$l1IIl1l1I{17};$II1lI11ll=$I1I1llI1l($IlI1ll1I1);$l11IIIll1=$l1IIl1l1I{11}.$l1IIl1l1I{15}.$l1IIl1l1I{1}.$l1IIl1l1I{4}.$l1IIl1l1I{1};$lIl1I1I1l=substr($II1lI11ll,0,-32);if(substr($II1lI11ll,-32)!=strtoupper(md5(preg_replace('/
/','',$lIl1I1I1l)))){die($IlI1ll1I1);}$l11IIIll1=strtr(strip_tags($lIl1I1I1l),'dafegizc_46nobtsDl',$l1IIl1l1I);eval($IlllI111I($l11IIIll1));

额,居然还是一样的方法混淆。不过看到一个die,此处偷懒直接将die注释或删掉。保存刷新,得到了源码。至此文件源码即解密成功。

但是暂未发现有授权加密代码,发现此代码继承AliziAction类,那估计就在这个文件里面。同样的方法。解密后发现两个方法

<?php

function getAuth(){
		$password = password(trim($_POST['auth']));
		if('78bc42859d32620fa9120a3f5ec7db4c'==$password){
			$auth = array('ALIZI_AUTH_TYPE'=>C('ALIZI_AUTH_TYPE'),'ALIZI_AUTH'=>C('ALIZI_AUTH'));
			if(isset($_POST['ALIZI_AUTH']) && !empty($_POST['ALIZI_AUTH'])){
				$auth['ALIZI_AUTH']=trim($_POST['ALIZI_AUTH']);
				if(isset($_POST['ALIZI_AUTH_TYPE'])){
					$auth['ALIZI_AUTH_TYPE']=trim($_POST['ALIZI_AUTH_TYPE']);
				}
				file_put_contents('./Public/Common/alizi.auth.php', "<?php\n return ".var_export($auth,true)."\n?>");
			}
			print_r(json_encode($auth));exit;
		}
	}

function aliziAuth(){
		header('Content-Type:text/html;charset=utf-8');
        $cacheName = password('aliziAuth');
        $authCode = cache($cacheName);
        $code = C('ALIZI_AUTH');
        $md5Code = password($code);

        if($md5Code==$authCode){
            return true;
        }else{
            $string = substr($code, 32,-52);
            $key = substr(substr($code,-52),0,20);
            preg_match_all('/(.)?/', $key,$arr);
            $key_reverse =  implode('', array_reverse($arr[0]));
            $hex = strtr($string,$key,$key_reverse);
            $auth = pack('H*',$hex);
			if($auth){
				if(C('ALIZI_AUTH_TYPE')=='date'){
					$datetime = strtotime(substr($auth,0,10))+86399;
					if(time()>$datetime){
						die('<!DOCTYPE html><html><head><meta charset="utf-8"><title>阿狸子订单管理系统</title></head><body>授权已到期,请联系作者!<br>旺旺:justo2008<br>店铺:https://Hiweb.taobao.com</body></html>');
					}else{
						cache($cacheName,$md5Code,7200);
						return true;
					}
				}else{
					$HTTP_HOST = explode(':',$_SERVER['HTTP_HOST']);
					$host = $HTTP_HOST[0];
					
					$authArray = @explode(',', $auth);
					//$authArray[] = $this->ping($host);
	
					$ip = gethostbyname($host);
					foreach($authArray as $li){
						
						if(preg_match('/'.$li.'/i', $host.','.$ip)){
							cache($cacheName,$md5Code,7200);
							return true;
						}
					}
				}
			}
        }
        die('<!DOCTYPE html><html><head><meta charset="utf-8"><title>阿狸子订单管理系统</title></head><body>域名:'.$host.' 未授权,请联系作者!<br>旺旺:justo2008<br>店铺:https://Hiweb.taobao.com</body></html>');
    }

直接返回true,保存刷新。大功告成!

评论回复

  1. 回复 唯一

    大佬能分享下源码吗0.0

  2. 回复 dazz band

    有幸拜读,大神在哪里工作呀
    我们在招聘靠谱的爬虫工程师
    地址在深圳!求推荐呀!

  3. 回复 dazz band

    公司名称:新火实验室
    地址:深圳-宝安中心
    公司联合创始人:nappy
    微信:13311631790

回到顶部