1. XenForo 1.5.14 中文版——支持中文搜索!现已发布!查看详情
  2. Xenforo 爱好者讨论群:215909318 XenForo专区

科技 解析百度搜索结果link?url=

Discussion in '新闻聚焦' started by 漂亮的石头, 2012-09-19.

  1. 漂亮的石头

    漂亮的石头 版主 Staff Member

    Joined:
    2012-02-10
    Messages:
    488,399
    Likes Received:
    48
    感谢Juny的投递
    自从9月后百度和360开战的结果就是 百度搜索结果的网址改变了,变成link?url=………这样的重定向格式了。看到这样的不友好的URL真有破解的冲动。于是今天开始试试破解它。前几天写过一篇可以获取到百度跳转之后的网址的文章,在百度了一下,有人也研究过百度link?url=的。大概得出如下结果:
    我是这样验证的:
    1、先百度搜索 www.php100.com
    第一个结果链接:
    http://www.baidu.com/link?url=…………ebac5573358cc3c0659257bfcf546427d385fef6656de2404d6843da27
    看到前面的几位6427d385fef6656de2404d6843da27
    2、 再百度搜索 www.hao123.com
    第一个结果链接:
    http://www.baidu.com/link?url=…………ebac5573358cc3c0659257bfcf54 6427d385e6ff7a6de0434d6843da 看到前面的几位6427d385e6ff7a6de0434d6843da
    ……
    多次搜索N个网站后发现,域名前几位是“www.”的,密文是都是6427d385
    并且www.是四个字符,密文6427d385是八个字符。可以知道密文两个字符等于url一个字符。
    于是写了一个php表单查询并得到密文部分,方便以后查看。
    出个php源码:
    <html>
    <head>
    <meta http-equiv="content-type" content="text/html;charset=utf-8">
    <title>查询百度link?ulr=真实链接表单</title>
    </head>

    <body>
    <?php
    /*
    getrealurl 获取301、302重定向后的URL地址 by enenba.com
    @param str $url 查询
    $return str 定向后的url的真实url
    */
    function getrealurl($url){
    $header = get_headers($url,1);
    if (strpos($header[0],'301') || strpos($header[0],'302')) {
    if(is_array($header['Location'])) {
    return $header['Location'][count($header['Location'])-1];
    }else{
    return $header['Location'];
    }
    }else {
    return $url;
    }
    }
    $input = '<form method="get" action=""><input type="text" name="url" id="url" style="width:800px;" /><input type="submit" value="提交" /></form><body></html>';

    $url = isset($_GET['url'])?$_GET['url']:'';
    if(empty($url)) exit($input);
    $urlreal = getrealurl($url);
    echo '真实的url为:'.$urlreal;
    $urlreal = ltrim($urlreal,'http://');

    $search = '/ebac5573358cc3c0659257bfcf54([0-9a-f]+)/i';
    preg_match($search,$url,$r);
    $url_encode = $r[1]; unset($r);

    echo '<br/>密文部分为:'.$url_encode.'<br/>';

    $urlreal_arr = str_split($urlreal);
    $url_encode_arr = str_split($url_encode,2);

    echo '<br />';
    echo $input;
    ?>

    测试页面:http://enenba.com/tool/baidu_link_url_jiemi/
     
Loading...