Files
2019-09-08 22:14:11 +07:00

122 lines
4.1 KiB
Python

import os
import sys
import requests
import urllib3
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
sys.path.append(os.path.dirname(os.path.dirname(os.path.realpath(__file__))))
from lib.core import utils
osmedeus_headers = {"User-Agent": "Osmedeus/v2.0", "Accept": "*/*",
"Content-type": "application/json", "Connection": "close"}
# send request through Burp proxy for debug purpose
PROXY = {
'http': 'http://127.0.0.1:8081',
'https': 'http://127.0.0.1:8081'
}
# just for sending cmd purpose
def post_without_response(url, body, headers=osmedeus_headers):
try:
r = requests.post(url, verify=False, headers=headers,
json=body, timeout=2)
return r
except:
return False
def send_get(url, data, headers=osmedeus_headers,
cookies=None, is_json=False, proxy=None, retries=3):
for times in range(retries):
try:
r = just_send_get(url, data, headers=headers,
cookies=cookies, is_json=is_json, proxy=proxy)
return r
except Exception:
# retry if something went wrong
utils.random_sleep(3, 6)
# return nothing after few times retry
if times == int(retries - 1):
return None
def send_post(url, data, headers=osmedeus_headers,
cookies=None, is_json=False, proxy=None, retries=3):
for times in range(retries):
try:
r = just_send_post(url, data, headers=headers,
cookies=cookies, is_json=is_json, proxy=proxy)
return r
except Exception:
# retry if something went wrong
utils.random_sleep(3, 6)
# return nothing after few times retry
if times == int(retries - 1):
return None
# really send GET request
def just_send_get(url, data=None, headers=osmedeus_headers,
cookies=None, is_json=False, proxy=None):
if proxy:
if is_json:
r = requests.get(url, verify=False,
headers=headers, cookies=cookies,
json=data, proxies=proxy)
elif data:
r = requests.get(url, verify=False,
headers=headers, cookies=cookies,
data=data, proxies=proxy)
pass
else:
r = requests.get(url, verify=False, headers=headers,
cookies=cookies, proxies=proxy)
else:
if is_json:
r = requests.get(url, verify=False,
headers=headers, cookies=cookies, json=data)
elif data:
r = requests.get(url, verify=False,
headers=headers, cookies=cookies,
data=data, proxies=proxy)
else:
r = requests.get(url, verify=False,
headers=headers, cookies=cookies)
return r
# really send POST request
def just_send_post(url, data, headers=osmedeus_headers,
cookies=None, is_json=False, proxy=None):
if proxy:
if is_json:
r = requests.post(url, verify=False,
headers=headers, cookies=cookies,
json=data, proxies=proxy)
elif data:
r = requests.post(url, verify=False,
headers=headers, cookies=cookies,
data=data, proxies=proxy)
else:
r = requests.post(url, verify=False,
headers=headers, cookies=cookies, proxies=proxy)
else:
if is_json:
r = requests.post(url, verify=False,
headers=headers, cookies=cookies,
json=data)
elif data:
r = requests.post(url, verify=False,
headers=headers, cookies=cookies,
data=data)
else:
r = requests.post(url, verify=False,
headers=headers, cookies=cookies)
return r