核心信息:
请求网址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
//指定“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直接访问页面
    注: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();
       }
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(有些不是必要的可以不传)

最新文章

  1. caching与缓存
  2. linux系统中如何查看日志(转)
  3. Nginx 和 PHP的安装配置
  4. Delphi的文件操作
  5. go1.6.2 linux/amd64 的一个bug: gcc: 无法识别的选项&lsquo;-no-pie&rsquo;
  6. Objective-C的内存管理
  7. python3.3中使用tornado.options.parse_config_file的时候,在windows下conf为utf-8时,报错的问题
  8. 选择符优先级-----:link伪类
  9. 我的一点关于把WndProc指向类的成员函数的看法
  10. 7. Shell 脚本编写
  11. 获取设备的UUID
  12. 【转载】Java系列笔记(3) - Java 内存区域和GC机制
  13. dotnet检测类型是否为泛型
  14. Android开发过程中的坑及解决方法收录(三)
  15. try/catch中finally的执行时间
  16. sqlplus用户登录
  17. Authentication 方案优化探索(JWT, Session, Refresh Token, etc.)
  18. Matches Game
  19. Huffman 编码压缩算法
  20. PHP 与redis 操作添加处理投票

热门文章

  1. spring boot 传输数组类型数据
  2. SpringBoot yaml的配置及使用
  3. Apache 流框架 Flink,Spark Streaming,Storm对比分析(2)
  4. JavaSE 学习笔记之包装类(十七)
  5. Codeforces Round #260 (Div. 2) D
  6. [codeVS3943] 数学奇才琪露诺
  7. 【BZOJ2434】阿狸的打字机(fail树,DFS序)
  8. nyoj_528_找球号(三)_201404152050
  9. 浅谈WEB标准
  10. Lucene.Net 与 盘古分词