-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathgopher_strip.py
executable file
·40 lines (35 loc) · 1010 Bytes
/
gopher_strip.py
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
#! /usr/bin/env python
# 生成 gopher payload
# 适用于 http 访问
import os, argparse
def main():
parser = argparse.ArgumentParser()
parser.add_argument(
'-f',
'--filename',
type=str,
dest='filename',
help="type the filename you want to generate..."
)
args = parser.parse_args()
if args.filename:
return args.filename
if args.filename == None:
parser.print_help()
os._exit(0)
def convert(filename):
payload = ''
with open(filename, 'r') as f:
for line in f.readlines():
if line[-3:-1] == r"\r" or line[-1:-3:-1] == "r\\":
line = line.replace(r'\r', '%0d%0a').strip()
payload = payload + line
elif line == '\n':
payload = payload + '%0a'
else:
line = line.strip()
payload = payload + line
return payload
if __name__ == "__main__":
result = main()
print(convert(result))