-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathcache_channel.py
More file actions
64 lines (48 loc) · 3.52 KB
/
cache_channel.py
File metadata and controls
64 lines (48 loc) · 3.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
from sys import exit
from src.Core import CachingChannel
def intro() -> None:
output: str = f"""
[ Private Use Only ]
██████╗ █████╗ ██████╗██╗ ██╗███████╗ ██████╗██████╗
██╔════╝██╔══██╗██╔════╝██║ ██║██╔════╝ ██╔════╝╚════██╗
██║ ███████║██║ ███████║█████╗ ██║ █████╔╝
██║ ██╔══██║██║ ██╔══██║██╔══╝ ██║ ██╔═══╝
╚██████╗██║ ██║╚██████╗██║ ██║███████╗ ╚██████╗███████╗
╚═════╝╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝╚══════╝ ╚═════╝╚══════╝
██████╗██╗ ██╗ █████╗ ███╗ ██╗███╗ ██╗███████╗██╗
██╔════╝██║ ██║██╔══██╗████╗ ██║████╗ ██║██╔════╝██║
██║ ███████║███████║██╔██╗ ██║██╔██╗ ██║█████╗ ██║
██║ ██╔══██║██╔══██║██║╚██╗██║██║╚██╗██║██╔══╝ ██║
╚██████╗██║ ██║██║ ██║██║ ╚████║██║ ╚████║███████╗███████╗
╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═══╝╚═╝ ╚═══╝╚══════╝╚══════╝
[ Proof of Concept | d3d | @deadvolvo ]
══════════════════════════════════════════════════════════
"""
print(output)
def options() -> None:
output: str = f"""
Options:
-------
'-u', '--url' - [str] Set the URL of the vulnerable server
'-l', '--listener' - [bool] Set the listener to poll for global cache content
'-s', '--sender' - [bool] Set the sender status (will be asked to supply file)
"""
print(output)
if __name__ == "__main__":
import argparse
parser = argparse.ArgumentParser(add_help=False, usage=None)
parser.add_argument('-u', '--url', dest='url', action='store', type=str, default='')
parser.add_argument('-l', '--listener', dest='listener', action='store_true', default=False)
parser.add_argument('-s', '--sender', dest='sender', action='store_true', default=False)
arg = None
try:
arg = parser.parse_args()
intro()
if not arg.url or (not arg.listener and not arg.sender):
exit(options())
except TypeError:
exit(options())
try:
handler = CachingChannel(arg.url, arg.listener, arg.sender)
except KeyboardInterrupt:
print("\n[!] Breaking due to user-exception...\n")