C#模拟百度登录并到指定网站评论回帖(一)

页面导航:首页 > 网络编程 > ASP.NET > C#模拟百度登录并到指定网站评论回帖(一)

C#模拟百度登录并到指定网站评论回帖(一)

来源:互联网 作者:脚本宝典 时间:2015-09-17 12:37 【

核心信息:请求网址:https://passport.baidu.com/v2/api/?login请求方法:POST状态码:HTTP/1.1200OK请求头//用户代理UserAgent,是指浏览器,它的信息包括硬件平台、系统软件、应用软件和用户个人偏好
核心信息:
请求网址:  https://passport.baidu.com/v2/api/?login
请求方法: 	POST
状态码: 	HTTP/1.1 200 OK
请求头 
//用户代理 UserAgent,是指浏览器,它的信息包括硬件平台、系统软件、应用软件和用户个人偏好。在X.400电子系统中,用户代理是一种对数据打包、创造分组头,以及编址、传递消息的部件。用户代理并不是仅指浏览器,还包括搜索引擎。
User-Agent:	Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0
//引用地址
Referer:	http://passport.zongheng.com/?location=http%3A%2F%2Fwww.zongheng.com%2F
//指定“no-cache”值表示服务器必须返回一个刷新后的文档,即使它是代理服务器而且已经有了页面的本地拷贝。
Pragma:	no-cache
//初始URL中的主机和端口。
Host:	passport.baidu.com
//禁止追踪
DNT:	1
Connection:	keep-alive
//缓存方式
Cache-Control:	no-cache
//浏览器所希望的语言种类,当服务器能够提供一种以上的语言版本时要用到。
Accept-Language:	zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
//浏览器能够进行解码的数据编码方式,比如gzip。Servlet能够向支持gzip的浏览器返回经gzip编码的HTML页面。许多情形下这可以减少5到10倍的下载时间。
Accept-Encoding:	gzip, deflate
//浏览器可接受的MIME类型。
Accept:	text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
发送 Cookie
UBI:	fi_PncwhpxZ~TaKAZJs2KmY1aj~eJSAy5waoThqofQDTY~GMYKTqMLZwI855qbp5KfkoVWSLWDm426-o6Za
PSTM:	1440874285
HOSUPPORT:	1
H_PS_PSSID: 16716_1435_16710_16975_17012_12867_16937_16800_16935_17003_15310_11732_13932_16969_10634_16866_17051
BIDUPSID:	F2D05C9CD65A4B08A3398B45DCCE79FA
BDRCVFR[gltLrB7qNCt]:	mk3SLVN4HKm
BAIDUID:	F2D05C9CD65A4B08A3398B45DCCE79FA:FG=1
发送表单数据
//验证码
verifycode:	
username:	13543452240
u:	http://zongheng.baidu.com/sendbduss.do?source=0&location=http%3A%2F%2Fwww.zongheng.com%2F&_t=1440874289725
tt:	1440874310669
tpl:	zongheng
token:	ba24e21e7854ca8ff0c97d3374f3cd67
subpro:	
staticpage:	http://passport.zongheng.com/v3Jump.html
safeflg:	0
rsakey:	Qa94r9ecjnjSIN8kwVwGearzOG7Sjco9
quick_user:	0
ppui_logintime:	20266
password: QzfsW8bF6OMeq9cYgOH/eZDdUGsRkmmCCpczv/z4WFK7xTOWmtAfd2oOaS64YzhghDqYRKxPwmyEOP9NW+/Tj3t3gr73SR7oDh71HtXWd/h+pSWyG1K/y8ZplEz2Ud8ed0JyK03i/lLOvrVO4IXVoRuSNs5tXlfPm/VpbZGwh6s=
mem_pass:	on
logLoginType:	pc_loginBasic
logintype:	basicLogin
loginmerge:	true
isPhone: false
idc:	
gid:	2CAD7C5-2890-4E73-9EF4-7D4884DD7BE5
detect:	1
crypttype:	12
codestring:	
charset:	utf-8
callback:	parent.bd__pcbs__ok0875
apiver:	v3
响应头 Δ328ms
Vary:	Accept-Encoding
Transfer-Encoding:	chunked
Pragma:	public
P3p:	CP=" OTI DSP COR IVA OUR IND COM "
Last-Modified:	Sat, 29 Aug 2015 18:52:07 18AugGMT
Expires:	0
Etag:	w/"NWCZSRAtTJuAKSuXPTGfrybJep4Uu7Ps:1440874327"
Date:	Sat, 29 Aug 2015 18:52:07 GMT
Content-Type:	text/html
Content-Encoding:	gzip
Connection:	keep-alive
Cache-Control:	public
收到的 Cookie
USERNAMETYPE:	3
UBI:	fi_PncwhpxZ~TaL902PKy-dLNuHXHIXCfAoio8uSphdKLcOUgX~6tPeszSRclJGh4I2JOyHjF89eJpUNN-pSY7AWQZg9~lUka36Lzgi-vwAcSonARzzJoORX9aCMR0yze0BG9xmQd0eLHjt1HTp4MKrqisD67rt
STOKEN:	831edce8a805251f2804d16f097bc9f38df98fb3d107267581f1481eaf007029
SAVEUSERID:	a619ac30812bc617e9fdea028cd957
PTOKEN:	deleted
PTOKEN:	d56a25169bf00e85b3526db09775ebd9
PASSID:	yZuogE
HISTORY:	4ae4298bf57103aa5139faa502cd2fd4a5185c
BDUSS: GhSaWRGaEF3eTRtSTJTQU9NMndMTmkyek1NeVl2TzZ3Q0tvbm5mSExJVlhqQWxXQVFBQUFBJCQAAAAAAAAAAAEAAABF25csu6jT6s7UzP27qNPqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFf~4VVX~-FVR
响应主体 Δ0ms
<!DOCTYPE html><html><head><meta http-equiv=Content-Type content="text/html; charset=UTF-8"></head><body><script> var href = decodeURIComponent("http:\/\/passport.zongheng.com\/v3Jump.html")+"?" var accounts = '&accounts=' href += "err_no=0&callback=parent.bd__pcbs__ok0875&codeString=&userName=13543452240&phoneNumber=&mail=&hao123Param=R2hTYVdSR2FFRjNlVFJ0U1RKVFFVOU5NbmRNVG1reWVrMU5lVmwyVHpaM1EwdHZibTVtU0V4SlZsaHFRV3hYUVZGQlFVRkJKQ1FBQUFBQUFBQUFBQUVBQUFCRjI1Y3N1NmpUNnM3VXpQMjdxTlBxQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRmZ%2BNFZWWH4tRlZS&u=http://zongheng.baidu.com/sendbduss.do%3Fsource%3D0%26location%3Dhttp%253A%252F%252Fwww.zongheng.com%252F%26_t%3D1440874289725&tpl=&secstate=&gotourl=&authtoken=&loginproxy=&resetpwd=&vcodetype=&lstr=&ltoken=&bckv=1&bcsync=DwCry5RutZZ06iU%2BuYc%2FwZrAQJnInlokriRZJWd%2FF5RI8mItiLYvSbtnU%2FVSlAywgH0ozO5vdRICJ2F%2B3Xe%2BgxuGEbPQMGeZi9dUzXCVCG%2FELi5Xtw9Nq%2BEwpSaiJeE4mcbaTIS19CYg7roJ28UN4vg6X0JL1PAC5bRU3pjzOb4NFmRa%2By8pJxELNwSKh0hl%2FwWA0YYBmT4EDr7cZiL6cDOX83kgCoH8fvcuPh%2BoTwk57lk2tCeA6l0PIm%2FUAdHh9ns2LQEr4qBL35J54REy4OLV9xGGVP8L9hCnB%2BEU2eUAEyF5J%2FGcRjy1ivrQgXcTvb1mkcLoKpMf%2FeB5NopdSQ%3D%3D&bcchecksum=1222223214&code=&bdToken=&bctime=1440874327"+accounts; if(window.location){ window.location.replace(href); }else{ document.location.replace(href); } </script>
 
整合后得到(多次抓取后不相同的地方):
发送 Cookie
UBI:	fi_PncwhpxZ~TaKAcsgiukurYX~bjBxM2Cm-d6x1bOHomipF~NPSN3xBGhD-fkwY7QKXMdGtbGGEkfH6rvQ
PSTM:	1440874509
H_PS_PSSID: 1425_16997_16975_12657_17012_12867_16800_16934_17004_15773_12342_13932_16969_10632_16866_17050
BIDUPSID:	21447B391F8874869C7BFFD4B51D8474
BAIDUID:	21447B391F8874869C7BFFD4B51D8474:FG=1
发送表单数据
u:	http://zongheng.baidu.com/sendbduss.do?source=0&location=http%3A%2F%2Fwww.zongheng.com%2F&_t=1440874506320
tt:	1440874525779
token:	b753754fb9ad1d985154eec7c6015320
rsakey:	utuY20mVmofD3tjcZrV1uzvK4lpjPvCU
ppui_logintime:	18414
password: TsBsc8UGkjwxfd3E9BHnQ1pCoik5hfjKbbHYcMWGoocjW1/1l2RqJomIxbwhnbd5r8sWwFhheHpQoU4Ex4a+sOT3REfRV3jnwQoBaMZ2dLzI9NNne/NR1V1gL9Z0Nz3J0a6C9iHglJywzhgTVwTiOshvw3X9/idtTBGlq79Z7Tk=	
gid:	E42C04A-88D7-427B-AA02-0B4C2AB883F0
callback:	parent.bd__pcbs__5qwpki
收到的 Cookie
USERNAMETYPE:	3
UBI:	fi_PncwhpxZ~TaL9xQBSBqH-3L1dTsNNQk8R8DWYT5iAPwnL4gPQEcTXh3vugMdjEblVyepe-BoSr33XpvbwLE4zSKmqQANQPWvdqGevAL6QEsMsXhit~afIK3SfiY5zmFqtxJiEPa9yJFyLnmL2d1eXWfq
STOKEN:	2d327b0913875334b2368a899f675fed2688318f8988a44914b0c0af37301fdc
PTOKEN:	b9beddf75543aaf10ae721dbe744f038
PASSID:	8rH1Bp
BDUSS: UdmOX54b01FOWV6WWNkRmlWRDBSSklQanJMN3BNbDVZU2x2eGJnZlJERXVqUWxXQUFBQUFBJCQAAAAAAAAAAAEAAABF25csu6jT6s7UzP27qNPqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4A4lUuAOJVZ
 
登录逻辑总结(直接访问登录页面):
1、先登录百度首页www.baidu.com获取cookies
PSTM:	1440874509
H_PS_PSSID: 1425_16997_16975_12657_17012_12867_16800_16934_17004_15773_12342_13932_16969_10632_16866_17050
BIDUPSID:	21447B391F8874869C7BFFD4B51D8474
BAIDUID:	21447B391F8874869C7BFFD4B51D8474:FG=1
2、利用以上获得的cookie直接访问页面
https://passport.baidu.com/v2/api/?getapi&tpl=zongheng&apiver=v3&tt=1441287460704&class=login&gid=26D2A76-9D6C-4EBE-8687-25C6591194B2&logintype=basicLogin&callback=bd__cbs__v9tdyy获取参数token
    注:tt是一个时间戳,用以下方法生成
       /// <summary>  
       /// 获取时间戳  
       /// </summary>  
       public  string GetTimeStamp()
       {
           TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
           return Convert.ToInt64(ts.TotalSeconds).ToString();
       }
3、用token访问该地址,获取raskeyhttps://passport.baidu.com/v2/getpublickey?token=5d0fc87cb0de39982c06795d3356e239&tpl=zongheng&apiver=v3&tt=1441311621601&gid=59723A6-1178-4614-B7AF-779917BC4453&callback=bd__cbs__gaci47和publickey
4、利用rsa加密算法将密码加密(公钥:publickey)
var pemToXml = RsaHelper.PemToXml(result_publicKey.Pubkey);
            pwd = RsaHelper.RSAEncrypt(pemToXml, pwd);
5、检验是否需要验证码
百度登录有一点比较好,就是他生成验证码会有一个codetype,而且这个type同一个BAIDUID申请是不变的,服务器会根据这个申请的type提供一个codestring,也就是验证码(我们是看不懂的,这个需要我们提交给服务器让它自动解析,就可以获得验证码图片)
6、提交数据登录
 如果返回的Json数据显示err_0,即代表成功登陆,257为验证码错误,7为密码错误
 7、获得百度提供的BDUSS,即可到想去的网站继续进行下一步分析
上面写的是编写软件时的大概步骤详细步骤,具体步骤后面会继续更新,希望能够帮助到各位有需要的童鞋~欢迎各位评论交流
 
PS:模拟登录最重要的步骤是抓包分析,获取对应的Cookies,如果遇上问题,请先检查代码逻辑,看看是否已经获得网站需要提供Cookie(有些不是必要的可以不传)


Tags:

文章评论

最 近 更 新
热 点 排 行
Js与CSS工具
代码转换工具

<