解析百度搜索结果link?url=参数分析 (全)


Posted in PHP onOctober 09, 2012

前几天写过一篇可以获取到百度跳转之后的网址的文章,在百度了一下,有人也研究过百度link?url=的。

大概得出如下结果:

1、加密方式根据:随机+输入停留时间+快照地址进行加密
2、整个代码中应该有三个部分:1、搜索词的时间;2、搜索的关键词;3、随机生成的唯一性标识代码。
3、在任何环境或浏览器下 url=最后有一段相似的代码
从以上别人研究的结果可以知道,“最后有一段相似的代码”是比较可用的,于是先从此入手。
我搜索“enenba” 发现,我的第一个搜索结果的URL都有一段代码是相同的,那就是
http://www.baidu.com/link?url=…………ebac5573358cc3c0659257bfcf54763ec1c5ecff3b3fbd1d4c
所有搜索结果都有的一段代码 ebac5573358cc3c0659257bfcf54 (搜索N次后发现)
后面结尾的 763ec1c5ecff3b3fbd1d4c 看起来像是搜索结果的真实URL。(已经验证是真实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; 
?>

上一个在线例子:猛击测试
明天再研究,待续。。。。
本站事先声明:cnbeta上的文章不是我发布的。我解析只是根据自己的想法进行研究的,只是求个过程,至于有没有结果,我自有定论,大家别喷了。
接上一篇文章,仔细看了下百度结果url的长段代码,发现密文中只有数字和a到f字母组成,也就是十六进制的代码。
十六进制是从 0->1->2->3->4->5->7->8->9->a->b->c->d->e->f
我采集一系列的url并统计了第一位的代码。
ebac5573358cc3c0659257bfcf54XX......
XX这一位代码对应的url是这样的
33 0 23 @ 13 P 03 ` 73 p 63 
! 32 1 22 A 12 Q 02 a 72 q 62 
" 31 2 21 B 11 R 01 b 71 r 61 
# 30 3 20 C 10 S 00 c 70 s 60 
$ 37 4 27 D 17 T 07 d 77 t 67 
% 36 5 26 E 16 U 06 e 76 u 66 
& 35 6 25 F 15 V 05 f 75 v 65 
' 34 7 24 G 14 W 04 g 74 w 64 
( 3b 8 2b H 1b X 0b h 7b x 6b 
) 3a 9 2a I 1a Y 0a i 7a y 6a 
* 39 : 29 J 19 Z 09 j 79 z 69 
+ 38 ; 28 K 18 [ 08 k 78 { 68 
, 3f < 2f L 1f \ 0f l 7f | 6f 
- 3e = 2e M 1e ] 0e m 7e } 6e 
. 3d > 2d N 1d ^ 0d n 7d ~ 6d 
/ 3c ? 2c O 1c _ 0c o 7c 6c

发现应该是一个ascii码表中的字符,但是顺序应该是混淆了。但是都是这个一个进制内都是这样:
3->2->1->0->7->6->5->4->b->a->9->8->f->e->d->c
四位一个降序,看出总体是递减的。
但是不解的是 从_ 到 `在ascii是相邻的 对应的 0c 和 73 是跳跃的。没办法,看不出规律,再看看第二位的这组代码
ebac5573358cc3c0659257bfcf54XXYY。。。。
YY这一位代码对应的url是这样的
70 0 60 @ 50 P 40 ` 30 p 20 
! 71 1 61 A 51 Q 41 a 31 q 21 
" 72 2 62 B 52 R 42 b 32 r 22 
# 73 3 63 C 53 S 43 c 33 s 23 
$ 74 4 64 D 54 T 44 d 34 t 24 
% 75 5 65 E 55 U 45 e 35 u 25 
& 76 6 66 F 56 V 46 f 36 v 26 
' 77 7 67 G 57 W 47 g 37 w 27 
( 78 8 68 H 58 X 48 h 38 x 28 
) 79 9 69 I 59 Y 49 i 39 y 29 
* 7a : 6a J 5a Z 4a j 3a z 2a 
+ 7b ; 6b K 5b [ 4b k 3b { 2b 
, 7c < 6c L 5c \ 4c l 3c | 2c 
- 7d = 6d M 5d ] 4d m 3d } 2d 
. 7e > 6e N 5e ^ 4e n 3e ~ 2e 
/ 7f ? 6f O 5f _ 4f o 3f 2f

第二位的这一组的秘文很好的遵循 十六进制递增的顺序。
0->1->2->3->4->5->7->8->9->a->b->c->d->e->f
总体是递减的。
再看第三组
ebac5573358cc3c0659257bfcf54XXYYZZ。。。。
ZZ这一位代码对应的url是这样的
84 0 94 @ a4 P b4 ` c4 p d4 
! 85 1 95 A a5 Q b5 a c5 q d5 
" 86 2 96 B a6 R b6 b c6 r d6 
# 87 3 97 C a7 S b7 c c7 s d7 
$ 80 4 90 D a0 T b0 d c0 t d0 
% 81 5 91 E a1 U b1 e c1 u d1 
& 82 6 92 F a2 V b2 f c2 v d2 
' 83 7 93 G a3 W b3 g c3 w d3 
( 8c 8 9c H ac X bc h cc x dc 
) 8b 9 9b I ab Y bb i cd y dd 
* 8e : 9e J ae Z be j ce z de 
+ 8f ; 9f K af [ bf k cf { df 
, 88 < 98 L a8 \ b8 l c8 | d8 
- 89 = 99 M a9 ] b9 m c9 } d9 
. 8a > 9a N aa ^ ba n ca ~ da 
/ 8b ? 9b O ab _ bb o cb db

不解释了上顺序:
4->5->6->7->0->1->2->3->4->c->b->e->f->8->9->a->b
总体是递增的
还没看后面的位数,不过大概可以知道是 四位为一组的混淆十六进制混淆,至于是递增还是递减,需要一定的数据量来判断。
下次采集1000条url数据进行判断。
待续。。。。
PHP 相关文章推荐
利用PHP实现与ASP Banner组件相似的类
Oct 09 PHP
phpMyAdmin下载、安装和使用入门教程
May 31 PHP
fleaphp下不确定的多条件查询的巧妙解决方法
Sep 11 PHP
PHPLog php 程序调试追踪工具
Sep 09 PHP
PHP echo,print,printf,sprintf函数之间的区别与用法详解
Nov 27 PHP
ThinkPHP中U方法的使用浅析
Jun 13 PHP
PHP获取文件夹内文件数的方法
Mar 12 PHP
在Linux系统的服务器上隐藏PHP版本号的方法
Jun 06 PHP
求帮忙修改个php curl模拟post请求内容后并下载文件的解决思路
Sep 20 PHP
php合并数组并保留键值的实现方法
Mar 12 PHP
thinkPHP5框架实现多数据库连接,跨数据连接查询操作示例
May 29 PHP
php 命名空间(namespace)原理与用法实例小结
Nov 13 PHP
仿Aspnetpager的一个PHP分页类代码 附源码下载
Oct 08 #PHP
php随机输出名人名言的代码
Oct 07 #PHP
PHP面向对象学习笔记之二 生成对象的设计模式
Oct 06 #PHP
PHP面向对象学习笔记之一 基础概念
Oct 06 #PHP
php生成局部唯一识别码LUID的代码
Oct 06 #PHP
PHP实现提取一个图像文件并在浏览器上显示的代码
Oct 06 #PHP
PHP中3种生成XML文件方法的速度效率比较
Oct 06 #PHP
You might like
PHP中MVC模式的模板引擎开发经验分享
2011/03/23 PHP
PHP函数preg_match_all正则表达式的基本使用详细解析
2013/08/31 PHP
PHP变量赋值、代入给JavaScript中的变量
2015/06/29 PHP
ThinkPHP静态缓存简单配置和使用方法详解
2016/03/23 PHP
PHP中in_array的隐式转换的解决方法
2018/03/06 PHP
php curl发送请求实例方法
2019/08/01 PHP
插件:检测javascript的内存泄漏
2007/03/04 Javascript
dojo学习第二天 ajax异步请求之绑定列表
2011/08/29 Javascript
JQuery 中几个类选择器的简单使用介绍
2013/03/14 Javascript
jquery 使用简明教程
2014/03/05 Javascript
使用jQuery设置disabled属性与移除disabled属性
2014/08/21 Javascript
JavaScript实现时间倒计时跳转(推荐)
2016/06/28 Javascript
jQuery如何封装输入框插件
2016/08/19 Javascript
原生ajax处理json格式数据的实例代码
2016/12/25 Javascript
tablesorter.js表格排序使用方法(支持中文排序)
2017/02/10 Javascript
ReactNative实现图片上传功能的示例代码
2017/07/11 Javascript
js微信应用场景之微信音乐相册案例分享
2017/08/11 Javascript
微信小程序实现默认第一个选中变色效果
2018/07/17 Javascript
Bootstrap Paginator+PageHelper实现分页效果
2018/12/29 Javascript
vue插槽slot的理解和使用方法
2019/04/03 Javascript
解决layui弹框失效的问题
2019/09/09 Javascript
使用layui实现树形结构的方法
2019/09/20 Javascript
vue.js 实现a标签href里添加参数
2019/11/12 Javascript
js异步接口并发数量控制的方法示例
2020/11/22 Javascript
[56:57]LGD vs VP 2019DOTA2国际邀请赛淘汰赛 胜者组赛BO3 第一场 8.20.mp4
2019/08/22 DOTA
python自动化测试之从命令行运行测试用例with verbosity
2014/09/28 Python
python用pandas数据加载、存储与文件格式的实例
2018/12/07 Python
python怎么删除缓存文件
2020/07/19 Python
Python实现七个基本算法的实例代码
2020/10/08 Python
移动端Html5页面生成图片解决方案
2018/08/07 HTML / CSS
公司综合部的成员自我评价分享
2013/11/05 职场文书
师范应届毕业生自荐信
2013/11/18 职场文书
银行实习生的自我评价
2014/01/13 职场文书
爱牙日活动总结
2014/08/29 职场文书
阿里云ECS云服务器快照的概念以及如何使用
2022/04/21 Servers
WinServer2012搭建DNS服务器的方法步骤
2022/06/10 Servers