网站建设首选九零后网络,网站调用微博,wordpress淘宝客建站,粪池怎样建设为啥要写这一篇文章呢#xff1f;#xff08;主要是qq群内有人在模拟登陆知乎#xff0c;一直不成功#xff09;然后我抓包看了下#xff0c;发现知乎登陆页已经改版了#xff0c;而且难度大大提高了。开始抓包首先内#xff0c;还是打开知乎首页#xff0c;然后输入账…为啥要写这一篇文章呢主要是qq群内有人在模拟登陆知乎一直不成功然后我抓包看了下发现知乎登陆页已经改版了而且难度大大提高了。开始抓包首先内还是打开知乎首页然后输入账号密码登陆记得输错密码这样我们就可以看到请求头了请求头如下我们发现有这几个请求头和正常的不一样红色框中的authorization 感觉应该是js生成的后面再看Content-Type 后面多了boundaryxxx 这种,那这种是啥意思呢,后面和请求参数一起看cookie这个要注意,登陆前cookie就不为空说明之前肯定有set-cookie的操作x-udid,x-sxrftoken 这两个都是验证参数,估计都在网页源代码能找到再看一下请求参数可以看到参数是以payload的形式出现的第一次看到这种的人估计会一脸懵逼这个要结合请求中的Content-Type:multipart/form-data; boundary----WebKitFormBoundary2KNsyxgtG28t93VF来一起看multipart/form-data 是一种表单提交的方式后面的boundaryxxx 是表单分割的方式那到底啥意思呢看一个简单的小列子你就能明白啦------WebKitFormBoundary2KNsyxgtG28t93VF 是分割不同参数的所以可以直接不看他这个是由上面的Content-Type后面的boundary决定的可以随便修改那把分割线去掉后上面的就相当于 client_idc3cef7c66a1843f8b3a9e6a1e3160e20,grant_typepassword.那么这个payload就很好理解了.我们来看一下一共有哪些参数参数还挺多的可以看到很多参数都是固定的如账号密码时间戳等等变动的有两个 client_id,signature开始找参数authorization 我们在chrome内直接按ctrlshiftf(全局搜索搜索js,css这些)可以看到已经搜索到了并且是直接写在js里面的然后重新随便换个账号再抓一次包发现authorization 的值还是固定的所以说明authorization 是直接写在js里面的不是动态修改的(那么authorization 的值我们就已经找到了cookie在登陆之前就发现cookie的值不为空说明肯定打开网页后就有set-cookie的操作了我们想验证的话先打开一个无痕浏览器主要是为了把之前的cookie全部清空避免干扰然后打开http://zhihu.com我们发现他有几次set-cookie的动作那我们想要模拟的话很简单的方法是直接使用requests.sessionx-udid,x-sxrftoken:一般这种验证参数都会在网页源代码里面,所以直接查看网页源代码可以看到已经找到了,后续就是如何把这个找出来而已可以使用正则或者xpath定位到client_id:你会发现client_id与上面的authorization 一模一样signature:还是使用ctrlshiftf 全局搜索发现找到了但是参数是js动态生成的...主要是找到如何加密的然后使用Python模拟出来第一步下载这个js格式化让代码好看一些第二步使用fiddle替换掉原来的js使用刚刚格式化的js第三步慢慢调试。。。直到找到如何生成的...大概步骤是这样但是假如你js像我一样很渣的话你可以直接找到这段加密的js然后Python执行这段js就可以了。。。上面呢我们把该找的参数都找到了接着只要模拟发送就可以了