zl程序教程

您现在的位置是:首页 >  其他

当前栏目

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

搜索百度 分析 解析 参数 结果 url Link
2023-06-13 09:14:36 时间
前几天写过一篇可以获取到百度跳转之后的网址的文章,在百度了一下,有人也研究过百度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=…………ebac5573358cc3c0659257bfcf546427d385e6ff7a6de0434d6843da
看到前面的几位6427d385e6ff7a6de0434d6843da
……
多次搜索N个网站后发现,域名前几位是“www.”的,密文是都是6427d385
并且www.是四个字符,密文6427d385是八个字符。可以知道密文两个字符等于url一个字符。
于是写了一个php表单查询并得到密文部分,方便以后查看。
出个php源码:
复制代码代码如下:

<html>
<head>
<metahttp-equiv="content-type"content="text/html;charset=utf-8">
<title>查询百度link?ulr=真实链接表单</title>
</head>
<body>
<?php
/*
getrealurl获取301、302重定向后的URL地址byenenba.com
@paramstr$url查询
$returnstr定向后的url的真实url
*/
functiongetrealurl($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="<formmethod="get"action=""><inputtype="text"name="url"id="url"style="width:800px;"/><inputtype="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是这样的
复制代码代码如下:

33023@13P03`73p63
!32122A12Q02a72q62
"31221B11R01b71r61
#30320C10S00c70s60
$37427D17T07d77t67
%36526E16U06e76u66
&35625F15V05f75v65
"34724G14W04g74w64
(3b82bH1bX0bh7bx6b
)3a92aI1aY0ai7ay6a
*39:29J19Z09j79z69
+38;28K18[08k78{68
,3f<2fL1f\0fl7f|6f
-3e=2eM1e]0em7e}6e
.3d>2dN1d^0dn7d~6d
/3c?2cO1c_0co7c6c

发现应该是一个ascii码表中的字符,但是顺序应该是混淆了。但是都是这个一个进制内都是这样:
3->2->1->0->7->6->5->4->b->a->9->8->f->e->d->c
四位一个降序,看出总体是递减的。
但是不解的是从_到`在ascii是相邻的对应的0c和73是跳跃的。没办法,看不出规律,再看看第二位的这组代码
ebac5573358cc3c0659257bfcf54XXYY。。。。
YY这一位代码对应的url是这样的
复制代码代码如下:

70060@50P40`30p20
!71161A51Q41a31q21
"72262B52R42b32r22
#73363C53S43c33s23
$74464D54T44d34t24
%75565E55U45e35u25
&76666F56V46f36v26
"77767G57W47g37w27
(78868H58X48h38x28
)79969I59Y49i39y29
*7a:6aJ5aZ4aj3az2a
+7b;6bK5b[4bk3b{2b
,7c<6cL5c\4cl3c|2c
-7d=6dM5d]4dm3d}2d
.7e>6eN5e^4en3e~2e
/7f?6fO5f_4fo3f2f

第二位的这一组的秘文很好的遵循十六进制递增的顺序。
0->1->2->3->4->5->7->8->9->a->b->c->d->e->f
总体是递减的。
再看第三组
ebac5573358cc3c0659257bfcf54XXYYZZ。。。。
ZZ这一位代码对应的url是这样的
复制代码代码如下:
84094@a4Pb4`c4pd4
!85195Aa5Qb5ac5qd5
"86296Ba6Rb6bc6rd6
#87397Ca7Sb7cc7sd7
$80490Da0Tb0dc0td0
%81591Ea1Ub1ec1ud1
&82692Fa2Vb2fc2vd2
"83793Ga3Wb3gc3wd3
(8c89cHacXbchccxdc
)8b99bIabYbbicdydd
*8e:9eJaeZbejcezde
+8f;9fKaf[bfkcf{df
,88<98La8\b8lc8|d8
-89=99Ma9]b9mc9}d9
.8a>9aNaa^banca~da
/8b?9bOab_bbocbdb

不解释了上顺序:
4->5->6->7->0->1->2->3->4->c->b->e->f->8->9->a->b
总体是递增的
还没看后面的位数,不过大概可以知道是四位为一组的混淆十六进制混淆,至于是递增还是递减,需要一定的数据量来判断。
下次采集1000条url数据进行判断。
待续。。。。