Sep
30

普天同庆祖国六十大寿,墨尔本及高雄电影节官网漏洞揭露

首先,热烈庆祝中华人民共和国成立六十周年,普天同庆;其次,祝各位路过本blog的孩子们节日快乐,玩的开心~下面开始放两者的漏洞。

这个事情一直没在blog上说,因为有一些顾忌。趁着祖国六十周年大庆,利用揭露漏洞的机会稍微说一下:本人无党派,在私企工作,与gov无任何联系;本人所作所为无任何政治色彩,只是一个愤懑的中国人的软弱反抗。当然,如果我没去碰这两个站,也会有人去搞,坊间爱国的黑客太多了,我只是侥幸碰巧关注的早些从而把它们拿下来而已。

没太多技术含量,高手别见笑~好了,不多说,谈谈漏洞:

一、墨尔本电影节官网(http://www.melbournefilmfestival.com.au/):

墨尔本电影节官网貌似给一个开发CMS的company(MeccaMedialight Pty Ltd.)做的,那一套CMS(名称是Wrangler 8.0.0)写的很不错。

虽然写的很好,但明眼人一眼就看出了网站有注入,确实有注入,而且权限蛮大,可以load_file;mysql版本大于5.0,所有数据都可以猜出来;robots.txt可以知道后台目录是:wrangler8。也许很多人觉得这样子已经很容易拿了,可是我却绊在这里很久,问题是,1、mysql猜到的密码一个都破不了,虽然看上去很像MD5;2、这个服务器貌似就这一个站,根本没旁注的机会。

实在没办法了,还是从源码下手吧。花费时间半天拿到源码(这里不说了,业内人士都知道怎么去搞源码),然后大概读了下源码,基本没找到漏洞。整体系统是没啥严重的漏洞,为什么有注入呢,也许前台是后来写的。执行代码与包含的漏洞没找到,只好还是回归后台,从后台下手吧,看看是什么加密,原来是mysql的password函数,不过我没mysql的库,指定破不了了。不过,后台验证那我发现了问题:Cookie Manipulation。

看源码(不知道是否开源,为了保护开发者利益,cookie名称用xxxxxxxxxxxxx替代):

function ValidateUser () {

        $this->UserLvl = 0;
    
        $uid = inQuery('user_login');
        $pwd = inQuery('password');
        $logout = inQuery('logout');
        $stay = false; //inQuery('createCookie');
        
        // check for logout
        if ($logout) {
        
            setcookie('xxxxxxxxxxxxx','',time()-60000);
            header("location:index.php");
            exit;
        }
        
        
        if (!empty($_COOKIE['xxxxxxxxxxxxx']) and !$logout) {    // cookie exists
                
            @list($c_uid,$cookie_hash) = split(',',$_COOKIE['xxxxxxxxxxxxx']);
            
            $q = "SELECT nonce, level, enabled FROM cw_administrators WHERE name='$c_uid'";
            $r = db_getarray($q);
            if (count($r) < 1) {
                $enabled = false;
            } else {
                $nonce = $r[0]['nonce'];
                $enabled = $r[0]['enabled'];
            }
            
            if ($enabled <> '1') {
            
                $this->UserID = '';
                $this->UserLvl = 0;
                setcookie('xxxxxxxxxxxxx','',time()-60000);
                $this->LoginMsg = 'This account ('.$c_uid.') has been disabled.';
                LogEvent('Admin access', 'Login rejected (account disabled). Someone from '. $_SERVER['REMOTE_ADDR']. " could not log in with supplied credentials ('$uid')");
                return false;
                
            } elseif ((md5($c_uid.$nonce) === $cookie_hash) && $nonce) {  // check nonce //这里满足就OK了,来源:http://www.oldjun.com
    
                $this->UserID = ($c_uid);    // cookie is good, create $user
                $this->UserLvl = $r[0]['level'];
                $safe_user = addslashes($c_uid);
                $q = "UPDATE cw_administrators SET last_access = now() WHERE name = '$safe_user'";
                $r = db_query($q);
                return true;
    
            } else {
                // something's gone wrong
                $this->UserID = '';
                $this->UserLvl = 0;
                $ok = setcookie('xxxxxxxxxxxxx','',time()-60000);
                if (!$ok) $this->LoginMsg = 'Please enter your username and password (unable to delete bad cookie)';
                else $this->LoginMsg = 'Please enter your username and password (bad cookie)';
                return false;
            }
            
        } elseif ($uid and $pwd) {    
                
                sleep(3); 
                
                $userdata = $this->HandleLogin($uid,$pwd);
                
                if (is_array($userdata)) {
                
                    
                    
                    extract($userdata);
    
                    if ($stay) {                                                                    
    
                        setcookie('xxxxxxxxxxxxx', $uid.','.md5($uid.$userdata['nonce']), time()+3600*24*365);    
    
                    } else {                                                                               
    
                        setcookie('xxxxxxxxxxxxx',$uid.','.md5($uid.$userdata['nonce']));                
                        setcookie('xxxxxxxxxxxxx_nostay','1', time()+3600*24*365);                    
                    }
                
                    $this->UserID = $uid;
                    $this->UserLvl = $userdata['level'];
                    
                    RecordEvent('Admin access', 'Successful login by <strong>'.$uid.'.</strong> Remote address is '.$_SERVER['REMOTE_ADDR'], $uid);
                    return true;
    
                } else {
                    $this->UserID = '';
                    $this->UserLvl = 0;
                    $this->LoginMsg = ('Could not log in with supplied credentials. <a href="'.ADMIN_URL.'?frm=rpwd"> Can\'t remember your password?</a>');
                    LogEvent('Admin access', 'Login rejected. Someone from '. $_SERVER['REMOTE_ADDR']. " could not log in with supplied credentials ('$uid')");
                    return false;
                }
        
        } else {
            $this->UserID   = '';
            $this->UserLvl  = 0;
            $this->LoginMsg = 'Please enter your username and password';
            return false;
        }    
        
        
    }

$nonce注入可以得到,于是可以得到$cookie_hash,于是直接修改cookie进后台了,剩下的不多说了,大家都有数。

二、高雄电影节官网(http://www.kff.tw/):

高雄电影节官网貌似也是外包给电脑公司的,但跟墨尔本电影节官网的公司比起来差多了,网站很小,代码也写的比较烂,虽然美工还是有点酷的~

拿这个站只花费了我一分钟,也许很多人已经知道漏洞了,于是我稍微提一下,不多说了。不过这个站也有个有意思的地方,前台可以肆意注入,而且mysql版本大于5.0,表与列都可以得到,可是就是找不到后台密码,于是用工具跑花去半分钟,我觉得数据库找不到用户名密码后(很明显那些表都不像),随便尝试了个常用的方法,一下子进去了,进出无阻,同样是后台验证问题,具体参考这里:http://www.oldjun.com/blog/index.php/archives/41/。

看看源码(后台):

<?
   
//session_start();
   
if(!isset($_SESSION["ADM_AUTH"]) || $_SESSION["ADM_AUTH"]==""){
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   <script language="javascript">alert("請登入");
          location="login.php?refer=<?echo $_SERVER['SCRIPT_NAME']?><? echo $_SERVER["QUERY_STRING"]?"?".$_SERVER["QUERY_STRING"]:""?>";
   </script>
</head>
</html>
<?
   
}else{
          
   }
?>

问题一目了然了吧?好了,不多说了,那个网站上的某些新闻真的看得让人很不爽,真想删之而后快。

高雄电影节貌似还没开始,然后官网的漏洞也没有修复。请大家对它的官网手下留情,我不说其他,那电脑公司的网络管理员也是有老婆孩子的,你们别搞的他下岗,这样不好,毕竟这种事情与他无关,做人总是要有点良心的~~~

谨以此文向祖国六十周年献礼,最后附上我保存的最原始的黑页:
墨尔本原始图

高雄原始图

共有22条评论

  1. mosh0u: Sep,29th,2009

    沙发~速度揭露漏洞啊~

  2. mosh0u: Sep,30th,2009

    头发都白了...

  3. Minghacker: Sep,30th,2009

    对啊,漏洞呢?oldjun大大。应该用we love peace比较好

  4. mosh0u: Sep,30th,2009

    辛苦你了~

  5. mosh0u: Sep,30th,2009

    也等死我了~

  6. unixhater: Oct,1st,2009

    学习,然后给FF装了个NoScript.

  7. 菜鸟: Oct,1st,2009

    ...黑站没有其他顾虑吗?
    也不怕哪天出事?
    牛啊

  8. Luc1f3r: Oct,2nd,2009

    高雄的我一个多月前也进去过,但是设置了权限,改不了首页。不知道大大是怎么改了首页的呢?可以说下么?

  9. xx: Oct,2nd,2009

    你修改不了首页我很怀疑是不是你找错地方了。嘿嘿虽然我没进去但是看到上面的揭密 那个首页文件应该在2009的目录下把。你应该是找错地方。这个只是我个人猜测毕竟没进去过。嘿嘿。具体问题还要请教blog主

  10. Minghacker: Oct,2nd,2009

    终于看到了,呵呵。小试牛刀去、、、

  11. Luc1f3r: Oct,2nd,2009

    当时试过了。只有上传那个文件夹可以写入,其他全部无法更改或写入。我社工过ftp密码,可是社不出来。现在我手上还有它后台的密码,不过估计已经改了。还有,当时我进去的时候它2009的后台没有验证的,我黑了它的blog密码之后才更改的。

  12. xhming: Oct,2nd,2009

    顶!红客~~思路好!

  13. guiyuantianju: Oct,3rd,2009

    tai you cai le

  14. 黑兵: Oct,3rd,2009

    接单子吗?日本的单子! 联系我Q 519520091

  15. Always: Oct,5th,2009

    向牛牛们学习。。

    为祖国而战。。

    在所不惜。。。、、

  16. QQ升级: Oct,5th,2009

    为祖国而战。。

  17. 小柯: Oct,8th,2009

    哇哇,来迟了。。。

  18. ram: Oct,27th,2009

    谢谢,学习当中!!

  19. test: Oct,27th,2009

    胆子太大了,达赖热你比啊,这些人,杀人不眨眼的,自己都有自杀组织,你胆子太大了,找你还不容易,说不定哪天在上班路上就被人毁灭了!!!你发点抵制的就算了嘛,居然这种图片都贴出来了,我真替你担心 呵呵。小心点。

  20. cc1987729: Nov,19th,2009

    老君,还记得我不?当年因为东南之音认识了你和snoopy还有喵喵、云彩,现在怎么样了?
    听说你黑了墨尔本的官网,很替你担心,你自己要多多注意啊
    Best Regards!

  21. oldjun: Nov,21st,2009

    ...记得~~~大家貌似都好~

  22. anboy: Apr,9th,2010

    虽然我只是路过,但是我还是停下来两个小时,虽然我很缺德,因为我看贴从来不回贴,虽然我很懒,懒得连字都懒得打,但是我还是花了一分钟打了这几个字,
    看了这些我真的很感慨,祖国60周年,我也只是一个小小鸟,躲在无人角落,拿起风骚多年的阿D,拼命的找注入点,日啊,老天不负有心人,日了美国的一个教育网,挂上了你最原始的黑页,不过要比你那个好看点,你那个红旗也太旧了,
    我悄悄的来了,又悄悄的走了,
    BY:Anboy

NAME:

required

E-MAIL:

required, will not be published

HOMEPAGE:

CONTENT: