模拟登陆知乎

    xiaoxiao2024-06-04  105

    信息收集阶段:

           信息收集阶段的主要内容有:

           1、了解正常登陆的流程

           2、了解正常登陆时用到的参数

           3、理顺出登陆流程,识别登陆时所需要的参数

    了解正常登陆的流程、参数 -可结合burp查看识别参数

         打开浏览器自带的调试器(查看Network-All),填写好帐号和密码、验证码后,点击登陆,查看调试器中的内容。

        

       查看加载的内容,可以看到captcha.gif?r=3562789056789字样(很明显加载的是验证码)、email字样,email数据包中的内容为:

       验证码的URL:https://www.zhihu.com/captcha.gif?r=3562789056789

       登陆时请求的URL:https://www.zhihu.com/login/email

       登陆时post的参数为:_xsrf、password、captcha、captcha_type、email

       参数意义如下:

           _xsrf:了解csrf漏洞的同学肯定会理解_xsrf参数的意义,它是为了给提交的表单添加个随机值,用来防止恶意构造的请求被触发后成功执行

          password:没错猜对了,就是登陆密码

          capcha:验证码

          captcha_type:验证码的类型,这个可以在网页源代码,或者是数据包中看到,这里是固定值cn

          email:没错又猜对了,是登陆帐号

    准备阶段:

       post数据包中的password、captcha_type、email参数可控,那么我们接下来要解决的问题就是获得_xsrf以及capcha的值。

       1)获取xsrf值:

          想要定位到一个参数,那么我们就需要从最初开始访问这个URL开始,找到其第一次出现的位置。

         从下图中我们可以看到,在第一次请求网站时,响应包中的cookies中设有_xsrf参数,结合burp我们可以观察到,在接下来的流程中,_xsrf的值固定为初始请求回来的值(即图中cookies中_xsrf字段的值),接下来我们把这个值获取到就可以了。

        

      获取xsrf参数值代码如下:

    import re import requests r = requests.get(url="https://www.zhihu.com",headers = headers,verify =False) s= str(r.cookies) pattern = r'_xsrf=(.*?) for' _xsrf = re.findall(pattern,s,re.S|re.I) xsrf = _xsrf[0]

      2)获取captcha的值:

          在浏览器中(下图)可以看到captcha图片的地址https://www.zhihu.com/captcha.gif?r=xxxxxxxx&type=login&lang=cn,我们知道r后面的一串数字为时间戳(别问我怎么知道的,在网页源代码中看到的)。

        

    获取验证码链接:为了避免本地获取的时间与服务器端的时间不同步,所以此处时间戳timestamp的值取网页中的值,将其与获取captcha的链接连接在一起,便获取到了验证码链接。

       

    获取验证码URL的代码如下:

    import re import requests r = requests.get(url="https://www.zhihu.com",headers = headers,verify =False) pattern_captcha_timestmp =r'<script type="text/json" class="json-inline" data-name="ga_vars">{"user_created":0,"now":(.*?),' ss = r.content _captcha_timestmp = re.findall(pattern_captcha_timestmp,ss,re.S|re.I) timestamp = _captcha_timestmp[0] captcha_url =base_url + '/captcha.gif?r=' +timestamp + "&type=login&lang=cn" print "captcha_url:%s"
    转载请注明原文地址: https://yun.8miu.com/read-129850.html
    最新回复(0)