socket模拟http的登陆_python模拟登陆知乎(最新版)

bcdd621bb5903046c457e6cbe8690a8e.png
为啥要写这一篇文章呢?
(主要是qq群内有人在模拟登陆知乎,一直不成功)然后我抓包看了下,发现知乎登陆页已经改版了,而且难度大大提高了。

开始抓包

首先内,还是打开知乎首页,然后输入账号密码,登陆(记得输错密码)

这样我们就可以看到请求头了(请求头如下)

7b67718127201c6ec0cb232eb83323f1.png

我们发现有这几个请求头和正常的不一样(红色框中的)

  1. authorization (感觉应该是js生成的,后面再看
  2. Content-Type (后面多了boundary=xxx 这种,那这种是啥意思呢,后面和请求参数一起看
  3. cookie:这个要注意,登陆前cookie就不为空,说明之前肯定有set-cookie的操作
  4. x-udid,x-sxrftoken 这两个都是验证参数,估计都在网页源代码能找到

再看一下请求参数

a518acc22b49a2fd6d145e23525bed42.png

可以看到参数是以payload的形式出现的

第一次看到这种的人估计会一脸懵逼

这个要结合请求中的

Content-Type:

multipart/form-data; boundary=----WebKitFormBoundary2KNsyxgtG28t93VF

来一起看

multipart/form-data 是一种表单提交的方式,后面的boundary=xxx 是表单分割的方式,那到底啥意思呢?看一个简单的小列子你就能明白啦

eda1552733d4a924e01c840ad41e8b8d.png

------WebKitFormBoundary2KNsyxgtG28t93VF 是分割不同参数的,所以可以直接不看他(这个是由上面的Content-Type后面的boundary决定的,可以随便修改)

那把分割线去掉后,上面的就相当于 client_id=c3cef7c66a1843f8b3a9e6a1e3160e20,

grant_type=password.

那么这个payload就很好理解了.

我们来看一下,一共有哪些参数

c44a1cb42000073e0618db7a9d65571c.png

参数还挺多的,可以看到很多参数都是固定的,如账号,密码,时间戳,等等

变动的有两个 client_id,signature

开始找参数

authorization :

我们在chrome内,直接按ctrl+shift+f(全局搜索,搜索js,css这些),可以看到已经搜索到了,并且是直接写在js里面的,然后重新随便换个账号再抓一次包,发现authorization 的值还是固定的,所以说明authorization 是直接写在js里面的,不是动态修改的(那么authorization 的值我们就已经找到了)

97cbb4bacf837b7ca0468e82e42c740c.png

81c4ff4daa04cbc21da20507d4fac7d1.png

cookie:

在登陆之前,就发现cookie的值不为空,说明肯定打开网页后就有set-cookie的操作了,我们想验证的话,先打开一个无痕浏览器(主要是为了把之前的cookie全部清空,避免干扰),然后打开http://zhihu.com,我们发现他有几次set-cookie的动作

764e544fc1cdd831c17c8e778ff2c1a2.png

a6045440def95af2018c103add2a30ea.png

3ebcaab311c1efdad661b9731ef72dbd.png

那我们想要模拟的话,很简单的方法是直接使用requests.session

x-udid,x-sxrftoken:

一般这种验证参数都会在网页源代码里面,所以直接查看网页源代码

可以看到已经找到了,后续就是如何把这个找出来而已,可以使用正则,或者xpath定位到

78af49ac9d4121097dd2282bf26d2d21.png

client_id:

你会发现client_id与上面的authorization 一模一样

signature:

还是使用ctrl+shift+f 全局搜索

发现找到了,但是参数是js动态生成的...

主要是找到如何加密的,然后使用Python模拟出来

6de42feed4a3c2fe07920a5a9c412160.png

第一步:下载这个js,格式化(让代码好看一些)

第二步:使用fiddle替换掉原来的js,使用刚刚格式化的js

第三步:慢慢调试。。。直到找到如何生成的...

大概步骤是这样

但是假如你js像我一样很渣的话,你可以直接找到这段加密的js,然后Python执行这段js就可以了。。。

上面呢,我们把该找的参数都找到了,接着只要模拟发送就可以了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/490718.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图像识别:利用KNN实现手写数字识别(mnist数据集)

图像识别:利用KNN实现手写数字识别(mnist数据集) 步骤: 1、数据的加载(trainSize和testSize不要设置的太大) 2、k值的设定(不宜过大) 3、KNN的核心:距离的计算 4、k个最近…

一个与生命起源有关的悖论终于得到了解决

来源:原理当Caitlin Cornell低头看显微镜时,她看见黑色的背景下浮现出一些大大的明亮斑点。它们就像微缩的太阳,在深色的太空幕布下闪耀着光芒。Conell回忆起把这些斑点展示给她的导师Sarah Keller时的兴奋,那时她们意识到&#x…

python ffmpy3与FFmpeg的安装

python ffmpy3与FFmpeg的安装 安装命令: pip install ffmpy3 去官网下载FFmpeg,根据自身电脑版本下载相应安装包 http://ffmpeg.org/download.html from ffmpy3 import FFmpeg ff FFmpeg(inputs{test.mp4: None},outputs{output.ts: None}) print(f…

千兆网线8根线定义图_家中的网线断裂/不够长,如何接线才最合适?

网线作为互联网时代不可或缺的主角,更是家装布线和工程施工中的常客。网线相对来说是很脆弱的,特别是一些质量一般的网线,在很多情况下都可能会被弄断,比如老鼠咬、过度拉伸、摆在地下人踩的人多了、电起火烧断、不小心被夹断等等…

中国决定以“六大政策”推动新一代人工智能发展

来源:智造智库以新一代人工智能为代表的新一轮科技革命和产业变革已经呈现出强大的影响力和生命力,人工智能技术对生产、流通、消费等形成高度渗透、跨界融合,新业态、新模式不断涌现,给以往的产业生态、社会分工、行业和企业边界…

第三次站立会议

项目进展:项目主体开始实施,我们在前期分工准备的同时开始讨论连连看的具体式样,开始上网参考其他项目的式样,搜集图片素材,为具有我们特色的连连看项目做准备。 存在问题:搜集素材时组员对项目的风格式样见…

ffmpy3与ffmpeg的简单使用

安装 python ffmpy3与ffmpeg的安装 https://blog.csdn.net/qq_40962368/article/details/90748852 ffmpy3的介绍: https://ffmpy3.readthedocs.io/en/latest/ ffmpy3是一个用于FFmpeg的Python包装器,最初是从ffmpy项目派生出来的。它根据提供的参数及…

5G将改变技术格局的8个原因(上)

来源:CESAsia5G是引领第四次工业革命的通用技术。为了说明5G如何推动技术创新的飞跃,威讯(Verizon)首席执行官卫翰思(Hans Vestberg)在2019年国际消费电子产品展(CES 2019)主题演讲中罗列了5G所带来的八项有可能改变世界的能力。通用能力1和2&#xff1a…

matlab频谱分析_罗德与施瓦茨两款新的信号和频谱分析仪 具有多种频率型号

射频元器件、发射机和模组的制造商正面临着复杂的宽带射频信号测量任务和严苛的上市时间要求。特别是随着5G NR技术的进步,工程师在研发和生产中需要使用支持5G带宽和RF需求的测试解决方案分析无线通信信号。罗德与施瓦茨的新型中档信号和频谱分析仪R&SFSV3000和…

ArcEngine一些代码实现(转载)

转自:http://xitong.iteye.com/blog/1715759 ArcEngine 一些实现代码 ●● 目录: A1 …………实现:鼠标滑过显示要素 tip A2 …………实现:通过鼠标选择要素并高亮显示(ISelectionEnvironment) A3 ……………

tensorboard可视化经常出现的两个问题

tensorboard经常出现的两个问题 TensorFlow经常使用tf.summary.FileWriter("路径", sess.graph)函数将训练的图信息保存到日志中 使用TensorBoard读取读取并展示日志,使用如下语句: tensorboard --logdir日志所在路径 一、OSError: [Errn…

从电报到5G,细说60年移动通信史的7个变革

来源:司南物联今天,我们不止介绍5G,还要给大家介绍通信史这60多年来的趣事。电话“发明者”贝尔居然是小偷?早在1871年,意大利人安东尼奥梅乌奇就开始为自己的Teletrofono电话系统去申请专利,他花10美元买了…

联通5g接入点设置参数_联通5G 所向无前

10月31日,正值联通5G商用1周年的日子,上海联通自商用上市之初便策划推出“联通5G点亮全城”系列活动,践行“让每个市民在第一时间感受5G的脉搏”。北区分公司延续联通5G点亮全城的热度、结合S10英雄联盟总决赛契机,在Nice奈锶电竞…

mAP与IOU的简单介绍

mAP 在评价一个检测算法的时候,主要看两个标准,即是否正确预测了框内的物体类别;预测的框和人工标注框的重合程度。这两个的量化指标分别是mAP(mean Average Precision)和IOU(Intersection Over Union&…

海外又曝出伪AI明星公司!人工智能是个巨大泡沫?

来源: 维识教育科技昨日,《华尔街日报》曝光了一家印度伪AI明星公司Engineer.ai。这家总部设在美国洛杉矶和英国伦敦的公司,一直以来都声称:使用AI技术在很大程度上实现了移动App的自动化开发。在2018年11月,Engineer.…

无法安装64位版本的office,因为在您的PC上找到了以下32位程序:microsoft visio professional 2013

这是因为卸载microsoft visio professional 2013时没有卸载干净,即残留了注册表 解决方法: 鼠标按win标识R,打开运行对话框,输入:regedit找到键值:HKEY_CLASSES_ROOT点击:HKEY_CLASSES_ROOT&a…

踩内存是什么意思啊_网络资讯:0x0000008e蓝屏代码是什么

今天来说一下0x0000008e蓝屏代码是什么这方面的一些讯息,不少朋友对0x0000008e蓝屏代码是什么这方面的一些讯息颇感兴趣的,小编今天就整理了一些信息,希望对有需要的朋友有所帮助。0x0000008e 蓝屏代码所代表的意思为“内存错误”、“软件不兼…

利用卷积神经网络实现人脸识别(python+TensorFlow)

利用CNN卷积神经网络实现人脸识别(pythonTensorFlow) 使用的人脸数据是耶鲁大学的一个人脸数据集Yale_64x64.mat,数据集已经上传Yale 64x64.mat 程序: 使用Yale_64x64.mat人脸数据,利用CNN卷积神经网络实现人脸识别 …

ant语法和规范

一、前言: 以前在做JavaEE项目的时候曾经听说过这个名字,但是由于没有用到,所以也没有去学习。最近在研究Android打包的时候,看了下build.xml文件,甚是迷糊,于是学习一下,稍有心得。 二、什么是…

苹果开发者_苹果优秀开发者实锤 微软VS Code将支持Apple Silicon

原标题:苹果优秀开发者实锤 微软VS Code将支持Apple Silicon【CNMO新闻】前不久,苹果正式推出搭载Apple M1芯片的Mac产品,至此Mac产品线也将采用ARM架构。产品发布会后没多久,微软Visual Studio Code团队发文称,旗下的…