解析百度搜索结果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异常处理技术,顶级异常处理器
Jun 13 PHP
比较discuz和ecshop的截取字符串函数php版
Sep 03 PHP
destoon安装出现Internal Server Error的解决方法
Jun 21 PHP
Linux下安装oracle客户端并配置php5.3
Oct 12 PHP
PHP callback函数使用方法和注意事项
Jan 23 PHP
深入剖析PHP中printf()函数格式化使用
May 23 PHP
PHP巧妙利用位运算实现网站权限管理的方法
Mar 12 PHP
php求数组全排列,元素所有组合的方法总结
Mar 14 PHP
PHP基于Closure类创建匿名函数的方法详解
Aug 17 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
Mar 02 PHP
PHP实现通过strace定位故障原因的方法
Apr 29 PHP
PHP连接MySQL数据库操作代码实例解析
Jul 11 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入门学习知识点一 PHP与MYSql连接与查询
2011/07/14 PHP
PHP中header函数的用法及其注意事项详解
2016/06/13 PHP
php-app开发接口加密详解
2018/04/18 PHP
phpcmsv9.0任意文件上传漏洞解析
2020/10/20 PHP
window.open以post方式将内容提交到新窗口
2012/12/26 Javascript
JS解决url传值出现中文乱码的另类办法
2013/04/08 Javascript
replace()方法查找字符使用示例
2013/10/28 Javascript
js模仿hover的具体实现代码
2013/12/30 Javascript
jQuery表格排序组件-tablesorter使用示例
2014/05/26 Javascript
在Ubuntu系统上安装Node.JS的教程
2015/10/15 Javascript
jQuery EasyUI 菜单与按钮之创建简单的菜单和链接按钮
2015/11/18 Javascript
AngularJS实现ajax请求的方法
2016/11/22 Javascript
AngularJS自定义服务与fliter的混合使用
2016/11/24 Javascript
Bootstrap 填充Json数据的实例代码
2017/01/11 Javascript
利用Vue v-model实现一个自定义的表单组件
2017/04/27 Javascript
vue中v-model的应用及使用详解
2018/06/27 Javascript
区别JavaScript函数声明与变量声明
2018/09/12 Javascript
用Python遍历C盘dll文件的方法
2015/05/06 Python
Python中的fileinput模块的简单实用示例
2015/07/09 Python
python函数形参用法实例分析
2015/08/04 Python
Windows下Anaconda的安装和简单使用方法
2018/01/04 Python
Python中的上下文管理器和with语句的使用
2018/04/17 Python
python re库的正则表达式入门学习教程
2019/03/08 Python
django框架创建应用操作示例
2019/09/26 Python
python判断字符串以什么结尾的实例方法
2020/09/18 Python
CSS3改变浏览器滚动条样式
2019/01/04 HTML / CSS
css3 利用transform打造走动的2D时钟
2020/10/20 HTML / CSS
html5中audio支持音频格式的解决方法
2018/08/24 HTML / CSS
Ibatis如何使用动态表名
2015/07/12 面试题
自考生自我鉴定范文
2013/10/01 职场文书
大专应届生个人简历的自我评价
2013/10/15 职场文书
成品仓管员工作职责
2013/12/29 职场文书
我的中国梦心得体会范文
2016/01/05 职场文书
干货:如何写好观后感 !
2019/05/21 职场文书
文书工作总结(范文)
2019/07/11 职场文书
利用Sharding-Jdbc进行分库分表的操作代码
2022/01/22 Java/Android