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

2012 年 9 月 22 日2,7180

Baidu 百度

感谢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" /><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/

6

0 0