Heim > Artikel > Backend-Entwicklung > Codebeispiel für den stapelweisen Erhalt und die Überprüfung eines HTTP-Proxys über Python
In diesem Artikel wird hauptsächlich das Python-Skript für die Stapelerfassung und -überprüfung von HTTP-Proxys vorgestellt.
HTTP-Brute-Force-Cracking und Credential-Stuffing. Es gibt einige gängige Techniken, wie zum Beispiel:
1. Beim Scannen des Kontos auf Renren.com bin ich zweimal auf einen einzelnen Kontofehler gestoßen und musste einen Bestätigungscode eingeben, aber die andere Partei hat die IP-Richtlinie nicht umgesetzt.
Ich verwende die Methode, eine Warteschlange mit 100.000 Personen (Benutzername, Passwort) zu verwalten, um den Bestätigungscode zu umgehen. Die spezifische Methode besteht darin, dass, wenn für eine bestimmte Kombination aus Benutzername und Passwort ein Bestätigungscode erforderlich ist, die Cracking-Sequenz angehalten, am Ende der Warteschlange platziert wird, auf den nächsten Test wartet und weiterhin andere Kontopasswörter geknackt wird.
Auf diese Weise können Sie sicherstellen, dass 2/3 der Zeit für normales Knacken und Kontoscannen aufgewendet wird.
2. Beim Knacken eines Systemkontos auf Meituan.com bin ich auf bestimmte Einschränkungen beim Einzel-IP-Zugriff gestoßen, und die Anforderungshäufigkeit sollte nicht zu schnell sein. Also habe ich 72 HTTP-Proxys aufgehängt, um dieses Problem zu lösen. Es scheint, dass die Anfragen von jeder IP normal sind, aber tatsächlich ist die Effizienz aus Sicht des gesamten Programms ziemlich beeindruckend.
In diesem Artikel habe ich einen Ausschnitt meines eigenen HTTP-Skripts gepostet, das eigentlich nur aus wenigen Zeilen besteht. Der anonyme Proxy wird hier abgerufen: http://www.xici.net.co/nn/
Besorgen Sie sich zuerst die Proxy-Liste:
from bs4 import BeautifulSoup import urllib2 of = open('proxy.txt' , 'w') for page in range(1, 160): html_doc = urllib2.urlopen('http://www.xici.net.co/nn/' + str(page) ).read() soup = BeautifulSoup(html_doc) trs = soup.find('table', id='ip_list').find_all('tr') for tr in trs[1:]: tds = tr.find_all('td') ip = tds[1].text.strip() port = tds[2].text.strip() protocol = tds[5].text.strip() if protocol == 'HTTP' or protocol == 'HTTPS': of.write('%s=%s:%s\n' % (protocol, ip, port) ) print '%s=%s:%s' % (protocol, ip, port) of.close()
Überprüfen Sie dann, ob der Proxy verfügbar ist , da ich der Account bin, der zum Knacken des Meituan-Systems verwendet wurde, habe ich daher den Meituan-Seiten-Tag verwendet:
#encoding=gbk import httplib import time import urllib import threading inFile = open('proxy.txt', 'r') outFile = open('available.txt', 'w') lock = threading.Lock() def test(): while True: lock.acquire() line = inFile.readline().strip() lock.release() if len(line) == 0: break protocol, proxy = line.split('=') headers = {'Content-Type': 'application/x-www-form-urlencoded', 'Cookie': ''} try: conn = httplib.HTTPConnection(proxy, timeout=3.0) conn.request(method='POST', url='http://e.meituan.com/m/account/login', body='login=ttttttttttttttttttttttttttttttttttttt&password=bb&remember_username=1&auto_login=1', headers=headers ) res = conn.getresponse() ret_headers = str( res.getheaders() ) html_doc = res.read().decode('utf-8') print html_doc.encode('gbk') if ret_headers.find(u'/m/account/login/') > 0: lock.acquire() print 'add proxy', proxy outFile.write(proxy + '\n') lock.release() else: print '.', except Exception, e: print e all_thread = [] for i in range(50): t = threading.Thread(target=test) all_thread.append(t) t.start() for t in all_thread: t.join() inFile.close() outFile.close()
Das obige ist der detaillierte Inhalt vonCodebeispiel für den stapelweisen Erhalt und die Überprüfung eines HTTP-Proxys über Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!