V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
dikT
V2EX  ›  Python

[Python_request_with_Cookie]我是如何找回社保卡的登录密码的

  •  
  •   dikT · 2017-01-05 15:55:03 +08:00 · 2764 次点击
    这是一个创建于 2884 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我是如何找回社保卡的登录密码的

    前一阵子想查询社保,结果忘记登录密码了.今天公司停电,又听同事说只要身份证就可以去社保局重置密码.于是我就兴冲冲地去了.结果在自助终端需要支付密码,在柜台需要社保卡.mmmp!
    回到家里后就撸了这个程序

    Step

    首先登录界面长这个样子

    下面是表单重点

    其中

    • Request Url(请求地址)
    • Request Method(请求方式)
    • Cookie(这个里面应该记录着你请求的哪一张验证码)
    • Form Data(传输的数据)

    代码 #coding: utf-8 import urllib2 import urllib from cookielib import CookieJar from time import sleep

    opener = urllib2.build_opener()
    opener.addheaders.append(("Cookie", "粘贴 cookie 至此"))
    
    # 这里将网页上的数据弄过来
    formdata = formdata = {"username": "022396919", "password1": "", "sfz": "", "checkCode": "336", "m": "null",
            "state": "null", "redirect_uri": "http://insurance.cdhrss.gov.cn/GetTokenAction.do",
            "response_type": "code", "client_id": "yhtest", "e": "null", "password": "13536415"}
    # 这里填写你的密码列表
    passwords = ["password1", "password2", "password3"]
    for password in passwords:
        formdata["password"] = password
        data_encoded = urllib.urlencode(formdata)
        response = opener.open( "http://jypt.cdhrss.gov.cn:8045/yhjypt/oauth/authorizeNoCaAction!getCode.do", data_encoded)
        content = response.read()
        print "登录失败,社保编码或查询密码有误!" in content, password
    

    结果

    上面的判断是看是否这个查询密码错误是否出现在返回的数据中, 而这个红色箭头所指的地方就是查询密码没有出现错误, 所以就用这个False所对应的面去网站试试,结果当然是成功的了

    其他

    其实验证码判断的依据是你用什么凭证去验证你的验证码,所以你的凭证在没有改变时,你用当前的凭证是可以进行多次验证同一个验证码的.如果你发现验证码有问题.那就打开调试,然后点击验证码图片,然后请求验证码图片,填写当前验证码并把当前请求里面的 Cookie 更新进代码即可.Over~

    博客原文

    7 条回复    2017-01-06 12:21:17 +08:00
    xeis
        1
    xeis  
       2017-01-05 16:04:59 +08:00
    只防人不防机器人的机制。。。
    dikT
        2
    dikT  
    OP
       2017-01-05 16:16:58 +08:00
    @xeis 有几个又能防止机器人.何况这是国企
    AlisaDestiny
        3
    AlisaDestiny  
       2017-01-05 16:20:14 +08:00
    要是发验证码的时候把验证码的值放在服务器的 session 中你还有办法不。
    dikT
        4
    dikT  
    OP
       2017-01-05 16:37:51 +08:00
    @AlisaDestiny 你应该说的是换 key, 但是它依然还是有个请求是获取图片的,而且这个图片还是比较简单那种,依然很好破解
    qwer1234asdf
        5
    qwer1234asdf  
       2017-01-05 16:50:46 +08:00
    上次爬一个小说站就是这么搞的。。
    eyp82
        6
    eyp82  
       2017-01-05 23:12:52 +08:00
    意思是你有一堆常用密码但是不记得到底是哪一个了. 所以就穷举了一下是吗? 然后你这个脚本的作用是不想每次都输入验证码?
    dikT
        7
    dikT  
    OP
       2017-01-06 12:21:17 +08:00
    @eyp82 是账号密码,验证码 都要.因为你没有成功登录这个网站, 所以浏览器也不会记住你的账号
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5496 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 337ms · UTC 06:51 · PVG 14:51 · LAX 22:51 · JFK 01:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.