-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathmethodist.py
45 lines (27 loc) · 1.2 KB
/
methodist.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
41
42
43
#!/usr/bin/env python3
import requests
import sys
import argparse
import re
parser = argparse.ArgumentParser(
description='''
syntax: python3 methodist.py \033[1;31;40m <http://yungmoon.com>
''')
parser.add_argument('url', type=str )
args = parser.parse_args()
url = sys.argv[1]
method_list = ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS', 'TRACE', '0xabad1dea','/../../../']
verifyurl = re.search("^http", url)
if (verifyurl):
print ("...")
else:
print ('\033[1;36;40m \n use a full url, like \033[1;37;40m http://bigboy.gov \033[1;39;40m \n \n ')
if (verifyurl):
print ("\033[1;32;40mX-----------X---------X-------------------X")
print ("\033[1;33;40mʘʘʘ\033[1;35;40m METHOD \033[1;33;40mʘʘʘ \033[1;35;40m CODE \033[1;33;40mʘʘʘ \033[1;35;40m REASON \033[1;33;40mʘʘʘ")
print ("\033[1;32;40mX-----------X---------X-------------------X")
for method in method_list:
req = requests.request(method, url)
print ('\033[1;32;40m...', '\033[1;34;40m', method, '\033[1;32;40m......', '\033[1;33;40m', req.status_code, '\033[1;32;40m...', '\033[1;37;40m', req.reason)
if method == 'TRACE' and 'TRACE / HTTP/1.1' in req.text:
print ('\033[1;31;43mCross Site Tracing(XST) is possible')