最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

【教程】如何利用IE9的F12去分析网站登陆过程中的复杂的(参数,cookie等)值(的来源)

Web crifan 10845浏览

在抓取网站内容,模拟网站登陆等过程中:

【教程】手把手教你如何利用工具(IE9的F12)去分析模拟登陆网站(百度首页)的内部逻辑过程

往往要去分析某些变量,参数,某cookie的值的来源。

而想要分析单个的值,相对于从F12所抓取到的海量信息,即N多条的记录,且每天记录中有N多数据信息,来说,很多时候,不是那么容易就找到你所想要的值的。

 

下面,就以登陆百度首页过程中,所涉及的一个cookie:SAVEUSERID,为例,来说明,如何一点点分析,找到最终这个值的来源。


【前提】

在:

【教程】手把手教你如何利用工具(IE9的F12)去分析模拟登陆网站(百度首页)的内部逻辑过程

中用F12分析百度登陆之前,已经通过:

Cache->Clear session cookies

Cache->Clear cookies for domain

Cache->Clear browser cache

Cache->Clear browser cache for this domain

清除了所有的cache(缓存)和cookie了。

 

然后现在接着去找,在访问:

https://passport.baidu.com/v2/api/?getapi&class=login&tpl=mn&tangram=true

时所用到的名为SAVEUSERID的cookie,是从哪里来的。

所以,能想到的,就是先去搜索SAVEUSERID。

 

并且,是利用从最开始的地方,往后去搜索:

from start to search

然后搜出来,第一个出现的位置是:

first occurence

可以看到,当前的url地址是 16/80,即一共抓取到了80条记录,现在这个是第16个。

这意味着,在此之前15条记录中,都没有出现SAVEUSERID,而第一次出现此SAVEUSERID,是在第16条记录,url地址为:

https://passport.baidu.com/img/v2/small_blank.gif

切换到summary view,更加容易看清整个抓取的记录的情况:

summary view first occurence

 

但是,此处,没有出现我们所期待的,是访问某个url,然后返回的cooki中,包括了此SAVEUSERID。

 

【小提示:cookie的生成和出现的时机】

所谓cookie,一般都是访问服务器,然后服务器返回的cookie。

然后之后才是访问其他的,后续的地址时,sent这些cookie,然后后续访问的地址所返回的信息中,可能会再次更新值/删除本地的,旧的cookie,以及也可能返回新的,增加新的本地的cookie。

甚至是第一次出现此cookie,是代码本身,比如javascript中通过代码生成的cookie。

但是无论如何,一般第一次出现一个cookie,最常见的都是服务器返回的cookie。其实少数可能是由期间运行到的javascript代码所生成的。

 

所以,接下来,还要想办法,找到此cookie,SAVEUSERID,第一次出现是在什么时候。

 

对此,需要用到我之前自己折腾的时候所学到的经验。

是去查看本地缓存文件和cookie中,看看是否有之前所保存的cookie。

因为,之前通过IE9的F12所执行的删除cookie时,其虽然的确删除了“当前domain”的cookie,但是对于非当前domain的cookie,并没有删除掉。

即,本来是通过点击

Cache->Clear session cookies

Cache->Clear cookies for domain

打算删除掉,关于百度的所有的cookie的,结果,实际上,此时只去删除了

当前domian=www.baidu.com

所相关的cookie,而对于passport.baidu.com,由于和www.baidu.com不是同一个domain

(这点很容易迷惑人,不了解的去看:

【全部解决】Cookie的Domain值的起始是否包含点的问题 + cookie的Domain和Host的关系 + Cookie的Domain的作用域/有效范围

 

所以,本地那些passport.baidu.com相关的cookie,还是存在的,所以通过自己手动找到电脑中放cookie和缓存的地方,还是可以找到的:

Cookie:[email protected]/

的:

temp internet files cookies for passport baidu

所以,然后点击右键,选择拷贝,然后可以打开看看其中内容是:

SAVEUSERID
345baf769053e0ed4234
passport.baidu.com/
1024
1176968064
30863716
1055336676
30260219
*
PTOKEN
5861be3f7317a32a65afbd76ee501711
passport.baidu.com/
1024
1176968064
30863716
1055336676
30260219
*
STOKEN
2e0266d36ed35e658f14c183695d7936
passport.baidu.com/
1024
1176968064
30863716
1055336676
30260219
*

这里,才是真正SAVEUSERID所在的位置,而为何之前找不到SAVEUSERID第一次出现的位置,是因为此处本地

域名(domain)为passport.baidu.com所对应的cookie中包含了SAVEUSERID,没有被删除掉,所以,上述IE9的F12抓取到的第一次出现的SAVEUSERID的时候,就已经有了值,且在访问地址:

https://passport.baidu.com/v2/api/?getapi&class=login&tpl=mn&tangram=true

时所使用了。

 

【小提示:手动找到本地存放cookie和cache的地方】

即 浏览器的临时文件夹,可以通过如下方法找到:

选项->Internet Option:

options Internet options

General->Settings->View File:

general settings view files

其中可以找到对应的cookie:

temp files cookies

 

 

此时,知道原因了,那就可以再去去完整清除所有的cookie和cache了:

1.先去F12中执行:

Cache->Clear session cookies

Cache->Clear cookies for domain

Cache->Clear browser cache

Cache->Clear browser cache for this domain

再点击Clear,清楚之前所抓取的所有的数据:

clear all

 

2.再刷新:

C:\Users\CLi\AppData\Local\Microsoft\Windows\Temporary Internet Files

然后找到

Cookie:[email protected]/

点击右键,选择删除:

delete passport baidu

另外,也顺带发现了,其他一些和百度有关的cookie:

Cookie:[email protected]/

Cookie:[email protected]/ -> 其中包含了Hm_lvt_9f14aaa038bbba8b12ec2a4a3e51d254和Hm_lvt_87552b45c65e0cee553df4aae1e815fc

Cookie:[email protected]/

也都顺便一起都删除,以便影响后续的分析。

 

然后,再去重新打开http://www.baidu.com/,去抓取数据:

new capture baidu

再去点击“登陆”:

re login

输入用户名和密码去登陆:

has login

然后再去重新搜索想要分析的SAVEUSERID,然后搜索出来的第一个是:

search SAVEUSERID found first is 3 of 67

3 /67,即共67条记录中的第三条记录,url地址是:

https://passport.baidu.com/v2/api/?login

很明显,其就是我们所期望的了,因为其中的SAVEUSERID是通过Set-Cookie所获得的,是访问服务器的某个地址(https://passport.baidu.com/v2/api/?login),然后服务器所返回的cookie值。

如此,我们才能有机会,去写代码,去模拟访问此路径,获得此cookie,然后有后续的可能,利用此cookie,访问后续其他地址,最后完整模拟登陆网站的全部过程的。

 

另外,从Cookies页面,可以更完整的看到所有的cookie的关系:

sent 1 and receive 5 cookies

赋值下来其所有值为:

Direction	Key	Value	Expires	Domain	Path	Secure	HTTP only
Sent	BAIDUID	CDFB2428D458E80FEBE945BE3417D33F:FG=1					
Received	BDUSS	ZPeDA1dmZpVWtaYkR1MHVBNklQWjJzSjlwcm9KRWE0U2hOSW9aLXRRN0ZMSVpSQVFBQUFBJCQAAAAAAAAAAAoqxg2y1YMAY3JpZmFuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAYIArMAAAALD2RX0AAAAA6p5DAAAAAAAxMC4yNi4xMMXemFDF3phQaU	Sat, 23-Jan-2021 09:56:21 GMT	baidu.com	/	No	No
Received	PTOKEN	97c4278d97bb55b68b67ee7eab974b4c	Sat, 23-Jan-2021 09:56:21 GMT	passport.baidu.com	/	No	No
Received	STOKEN	1f93a5f7f04911545777c92fa0fabbd5	Sat, 23-Jan-2021 09:56:21 GMT	passport.baidu.com	/	No	No
Received	PTOKEN	deleted	Mon, 07-Nov-2011 09:56:20 GMT	baidu.com	/	No	No
Received	SAVEUSERID	345baf769053e0ed4234	Sat, 23-Jan-2021 09:56:21 GMT	passport.baidu.com	/	No	No

也很明显看到,另外我们所需要的几个cookie,即PTOKEN,STOKEN,SAVEUSERID,也同时获得了。

 

【总结】

至此,才完全的分析出来,单个的值,此处为名为SAVEUSERID的cookie,其最原始的值,是访问:

https://passport.baidu.com/v2/api/?login

然后服务器返回的响应中,包含了Set-Cookie,设置了新的名为SAVEUSERID的cookie,最终找到了此SAVEUSERID的来源。

 

而对于模拟网站登陆中,所涉及的其他cookie,其他参数的值等,都是按照上述的逻辑,去一点点分析,找到最终的某个值的来源,然后才能用程序去模拟的。

转载请注明:在路上 » 【教程】如何利用IE9的F12去分析网站登陆过程中的复杂的(参数,cookie等)值(的来源)

87 queries in 0.219 seconds, using 19.21MB memory