解析百度搜索结果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.MVC的模板标签系统(二)
Sep 05 PHP
PHP4和PHP5共存于一系统
Nov 17 PHP
PHP5中的this,self和parent关键字详解教程
Mar 19 PHP
五款PHP代码重构工具推荐
Oct 14 PHP
php一维二维数组键排序方法实例总结
Nov 13 PHP
php实现的简易扫雷游戏实例
Jul 09 PHP
php实现word转html的方法
Jan 22 PHP
YII动态模型(动态表名)支持分析
Mar 29 PHP
使用PHPStorm+XDebug搭建单步调试环境
Nov 19 PHP
Laravel使用Queue队列的技巧汇总
Sep 02 PHP
laravel中Redis队列监听中断的分析
Sep 14 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中的Trait使用方法
2019/03/22 PHP
javascript 实现父窗口引用弹出窗口的值的脚本
2007/08/07 Javascript
AngularJS语法详解(续)
2015/01/23 Javascript
JS和css实现检测移动设备方向的变化并判断横竖屏幕
2015/05/25 Javascript
使用pcs api往免费的百度网盘上传下载文件的方法
2016/03/17 Javascript
webpack+vue.js实现组件化详解
2016/10/12 Javascript
js将table的每个td的内容自动赋值给其title属性的方法
2016/10/13 Javascript
js导出excel文件的简洁方法(推荐)
2016/11/02 Javascript
javascript 闭包详解及简单实例应用
2016/12/31 Javascript
vue组件之Alert的实现代码
2017/10/17 Javascript
ionic3实战教程之随机布局瀑布流的实现方法
2017/12/28 Javascript
vue scroller返回页面记住滚动位置的实例代码
2018/01/29 Javascript
Bootstrap 实现表格样式、表单布局的实例代码
2018/12/09 Javascript
jquery实现两个div中的元素相互拖动的方法分析
2020/04/05 jQuery
element中的$confirm的使用
2020/04/26 Javascript
jQuery实现简单日历效果
2020/07/05 jQuery
vue+element获取el-table某行的下标,根据下标操作数组对象方式
2020/08/07 Javascript
vue中重定向redirect:‘/index‘,不显示问题、跳转出错的完美解决
2020/09/28 Javascript
原生JavaScript实现轮播图
2021/01/10 Javascript
Python中的自省(反射)详解
2015/06/02 Python
PyQt实现界面翻转切换效果
2018/04/20 Python
Python实现的线性回归算法示例【附csv文件下载】
2018/12/29 Python
PyCharm中代码字体大小调整方法
2019/07/29 Python
python hash每次调用结果不同的原因
2019/11/21 Python
python科学计算之numpy——ufunc函数用法
2019/11/25 Python
基于python traceback实现异常的获取与处理
2019/12/13 Python
python实现图片转字符画的完整代码
2021/02/21 Python
开发中都用到了那些设计模式?用在什么场合?
2014/08/21 面试题
师德学习感言
2014/01/31 职场文书
竞选部长演讲稿
2014/04/26 职场文书
品牌服务方案
2014/06/03 职场文书
普通党员个人对照检查材料
2014/09/18 职场文书
考研导师推荐信范文
2015/03/27 职场文书
2015年保险公司内勤工作总结
2015/05/23 职场文书
2015年国庆节寄语
2015/08/17 职场文书
Python安装使用Scrapy框架
2022/04/12 Python