Код: Выделить всё
from http.server import HTTPServer, BaseHTTPRequestHandler
import urllib.parse
class RequestHandler(BaseHTTPRequestHandler):
def do_POST(self):
if self.path == '/login':
content_length = int(self.headers['Content-Length'])
post_data = self.rfile.read(content_length).decode('utf-8')
post_data = urllib.parse.parse_qs(post_data)
username = post_data.get('username', [None])[0]
password = post_data.get('password', [None])[0]
if username == 'user' and password == 'pass':
self.send_response(200)
self.end_headers()
self.wfile.write(b"Login successful")
else:
self.send_response(403)
self.end_headers()
self.wfile.write(b"Invalid login")
else:
self.send_response(404)
self.end_headers()
self.wfile.write(b"Not found")
def do_GET(self):
if self.path == '/login':
self.send_response(200)
self.send_header('Content-type', 'text/html')
self.end_headers()
self.wfile.write(b"""
Username:
Password:
""")
else:
self.send_response(404)
self.end_headers()
self.wfile.write(b"Not found")
def run(server_class=HTTPServer, handler_class=RequestHandler, port=8000):
server_address = ('', port)
httpd = server_class(server_address, handler_class)
print(f'Starting httpd on port {port}...')
httpd.serve_forever()
if __name__ == "__main__":
run()
Код: Выделить всё
hydra -l user -P /home/user/Documents/passwords.txt http-post-form://192.168.178.91:8000/login:username=^USER^&password=^PASS^:F=Invalid login
Код: Выделить всё
[ERROR] Wrong syntax, requires three arguments separated by a colon which may not be null: /login
Подробнее здесь: https://stackoverflow.com/questions/785 ... wn-website