A piece of software that shows a traceroute of a URL redirect path

Overview

Odyssey

Tracing URL redirects has never been easier!

UsageDownload

Python version Project version Codacy Grade

🚩 Use Cases

  • To see where an affiliate link ends up
  • To see what affiliate network is being used in this process
  • Ensure that your own redirects work correctly as intended to
  • To analyse suspicious URLs from various sources
  • To avoid being tracked by companies
  • To avoid being redirected to malicious websites
  • Discover how many times a site can redirect your request
  • Check if URL shortening services such as bitly and adfly redirect to legitimate websites

To learn more about the uses of redirects, and what redirects are, please read this article.

Requirements

  • A python installation above 3.0+, which you can download from the official python website here.

➡️ Installation

To have Odyssey work properly without any hiccups, please follow the instructions below.

  • Clone this repository or download it from here
  • Then execute the command pip install -r requirements.txt

📝 License

Odyssey - A piece of software that shows a traceroute of a URL redirect path Copyright (c) 2021 IlluminatiFish

This program is free software; you can redistribute it and/or modify the code base under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but without ANY warranty; without even the implied warranty of merchantability or fitness for a particular purpose. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/

Acknowledgements

  • The developers of the modules used in this project
  • The developers of the IP-API website
You might also like...
 automatically crawl every URL and find cross site scripting (XSS)
automatically crawl every URL and find cross site scripting (XSS)

scancss Fastest tool to find XSS. scancss is a fastest tool to detect Cross Site scripting (XSS) automatically and it's also an intelligent payload ge

An interactive TLS-capable intercepting HTTP proxy for penetration testers and software developers.

mitmproxy mitmproxy is an interactive, SSL/TLS-capable intercepting proxy with a console interface for HTTP/1, HTTP/2, and WebSockets. mitmdump is the

Backdoor is a term that refers to the access of the software or hardware of a computer system without being detected.
Backdoor is a term that refers to the access of the software or hardware of a computer system without being detected.

This program is an non-object oriented opensource, hidden and undetectable backdoor/reverse shell/RAT for Windows made in Python 3 which contains many features such as multi-client support and cross-platform server.

This tool ability to analyze software packages of different programming languages that are being or will be used in their codes, providing information that allows them to know in advance if this library complies with processes.

This tool gives developers, researchers and companies the ability to analyze software packages of different programming languages that are being or will be used in their codes, providing information that allows them to know in advance if this library complies with processes. secure development, if currently supported, possible backdoors (malicious embedded code), typosquatting analysis, the history of versions and reported vulnerabilities (CVEs) of the package.

The Linux defender anti-virus software ported to work on CentOS Linux.

By: Seanpm2001, Et; Al. Top README.md Read this article in a different language Sorted by: A-Z Sorting options unavailable ( af Afrikaans Afrikaans |

wsvuls - website vulnerability scanner detect issues [ outdated server software and insecure HTTP headers.]
wsvuls - website vulnerability scanner detect issues [ outdated server software and insecure HTTP headers.]

WSVuls Website vulnerability scanner detect issues [ outdated server software and insecure HTTP headers.] What's WSVuls? WSVuls is a simple and powerf

Use Fast Redirect to easily redirect your domains.

Fast Redirect Use Fast Redirect to easily redirect your domains. Fast Redirects expects a JSON 'database'. This JSON 'database' contains the domains t

Simple app that redirect fixed URL to changing URL, configurable via POST requests

This is a basic URL redirection service. It stores associations between apps and redirection URLs, for apps with changing URLs. You can then use GET r

A small project where I identify notes and key harmonies in a piece of music and use them further to recreate and generate the same piece of music through Python
A small project where I identify notes and key harmonies in a piece of music and use them further to recreate and generate the same piece of music through Python

A small project where I identify notes and key harmonies in a piece of music and use them further to recreate and generate the same piece of music through Python

A python code for url redirect check

A python code for url redirect check

A url redirect status check module for python

A url redirect status check module for python

Automatic Video Library Manager for TV Shows. It watches for new episodes of your favorite shows, and when they are posted it does its magic.
Automatic Video Library Manager for TV Shows. It watches for new episodes of your favorite shows, and when they are posted it does its magic.

Automatic Video Library Manager for TV Shows. It watches for new episodes of your favorite shows, and when they are posted it does its magic. Exclusiv

A CLI for streaming, downloading anime shows. The shows data is indexed through GogoAnime.

Anime-cli A CLI for streaming, downloading anime shows. The shows data is indexed through GogoAnime. Please install mpv video-player for better experi

A traceroute tool that also displays IP information
A traceroute tool that also displays IP information

infotr A traceroute tool that also displays IP information. This tool has only been tested on Linux. Quick Start First, install this tool from PyPI. p

Build custom OSINT tools and APIs (Ping, Traceroute, Scans, Archives, DNS, Scrape, Whois, Metadata & built-in database for more info) with this python package
Build custom OSINT tools and APIs (Ping, Traceroute, Scans, Archives, DNS, Scrape, Whois, Metadata & built-in database for more info) with this python package

Build custom OSINT tools and APIs with this python package - It includes different OSINT modules (Ping, Traceroute, Scans, Archives, DNS, Scrape, Whoi

Prime Path Generator is a prime path generator used to generate prime paths.

Prime Path Generator is a prime path generator used to generate prime paths.

Python implementation of an automatic parallel parking system in a virtual environment, including path planning, path tracking, and parallel parking
Python implementation of an automatic parallel parking system in a virtual environment, including path planning, path tracking, and parallel parking

Automatic Parallel Parking: Path Planning, Path Tracking & Control This repository contains a python implementation of an automatic parallel parking s

Multi-path load balancing is a method used by most of the real-time network to split the packets into different paths rather than transferring it through a single path
Multi-path load balancing is a method used by most of the real-time network to split the packets into different paths rather than transferring it through a single path

Multipath-Load-Balancing Method of managing incoming traffic by distributing and sharing load fairly among multiple routes from source to destination

Comments
  • Usage documentation?

    Usage documentation?

    Is it possible to provide a basic guide for usage?

    When I use python run.py it prompts:

    [+] URL:
    

    When I enter an IP address (or domain name) there, I get this error trace:

    Traceback (most recent call last):
      File "/home/gamesbook/dev/scratch/Odyssey/run.py", line 144, in <module>
        main()
      File "/home/gamesbook/dev/scratch/Odyssey/run.py", line 14, in main
        traceroute = Odyssey().check(url)
      File "/home/gamesbook/dev/scratch/Odyssey/odyssey/__init__.py", line 44, in check
        redirect_uri, uri_server, uri_cookies = self._find_redirect(url, timeout)
      File "/home/gamesbook/dev/scratch/Odyssey/odyssey/__init__.py", line 118, in _find_redirect
        raw_response = request.execute()
      File "/home/gamesbook/dev/scratch/Odyssey/odyssey/request.py", line 44, in execute
        port = int(parsed_url.port)
    TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'
    
    opened by gamesbook 2
Releases(v1.3)
  • v1.3(Nov 4, 2021)

    Overall: - Added ip logger detection for 3 services namely Grabify.link, Linkify.me, IPLogger.org

    Config: - Added config option to rename traceroute map html file - Added configurable ip logger detection with 3 possible values to flag on, which are (DOMAIN, DOMAIN_IP, SSL_CERT_SUBJECT_DOMAIN)

    Requester & Utils: - Fixed a bug where Odyssey would not get the correct part of the url where the port is

    ResponseParser: - Fixed a bug where Odyssey would try to resolve an ip & port combo after using urlparse.netloc as the domain to be resolve - Made the regex for meta tag redirects more lenient - Fixed some grammar errors with variable names - Added slightly more descriptive errors - Fixed a bug where meta tag redirects were handled incorrectly without any extra thought on how they actually work within browsers - Added a few more javascript redirect detections - Odyssey will now exit properly if domain from location header does not resolve

    Source code(tar.gz)
    Source code(zip)
  • v1.2(Oct 8, 2021)

    Overall:

    • Updated error message format so its more clear what happened

      • Format: [ERROR] (<MODULE>) <TYPE> MESSAGE
    • Reorganised imports

    • Removed the following modules and included them in left over modules:

      • get_server
      • get_certs
      • get_cookies
      • get_ip_data

    Bootstrap:

    • Added default values if the ip metadata doesn't supply a value

    Config:

    • Added hardcoded default configuration values if none are set in the configuration file

      • User Agent: "Mozilla/5.0"
      • Segment Buffer: 4096
      • Tracking Cookies: []
      • Clear Cookies: []
    • Changed configuration name from config.json to odyssey.json

    • Fixed a weird bug where the config.json would not be detected properly

    • Added a new configuration setting DISPLAY_TRACKERS which should be used if you want to display the tracking cookies in the results Odyssey outputs, defaults to displaying tracking cookies, if set to False it will display all cookies set by the websites visited in the route

    Requester:

    • Renamed the raw socket requests module from requestor.py => requester.py

    Parser:

    • Made the parser a class called ResponseParser instead a huge function
    • Reject parsing anything other than text/html content type
    • Renamed content_parser.py => response_parser.py
    • Cleaned up code that handles Refresh header redirects
    • Cleaned up code that handles Location header redirects
    • Future proofed the location header host ip check to use the ipaddress module, and used ipaddress' is_global field to check if an IP is routeable

    Utils:

    • Renamed dictionarize function => _parse_headers
    • Moved _parse_headers function and get_value function into a class called HeaderUtils
    • Changed regular expression to be more inclusive for the find_urls function
    • Moved the get_cookies function into utils module
    • Moved schemes dictionary from various files into one file for easier use
    Source code(tar.gz)
    Source code(zip)
    Odyssey.v1.2-SRC.rar(16.75 KB)
  • v1.1(Jun 20, 2021)

    • Moved most the code that was in the trace_path module to the requestor module
    • Merged http_request & https_request modules into one combined module called requestor which now handles both http & https urls and does all the parsing that trace_path did prior to sending requests to the next url
    • Added a double check for the content mimetype, since we cannot trust any server on the internet (Ref: https://stackoverflow.com/a/43049834)
    • Made it so only content-types that are deemed to be "text/html" can be passed to BeautifulSoup parser to be parsed to find HTML-based redirects
    • Set default encoding cp437 to be used when decoding arbitrary html content, otherwise it will try to locate and use the encoding specified in the content-type header
    • Refractored the get_certs module to allow any port to be used in the SSL communication to get the certificate of the web server just like the code in the requestor module which was previously located in the trace_path module
    Source code(tar.gz)
    Source code(zip)
    Odyssey.v1.1-SRC.rar(10.33 KB)
  • v1.0(Jun 12, 2021)

    • Updated ip data util func docustring
    • Updated content type check so we dont run it weird unicode errors
    • Updated cookie retrieval to retain cookie case sensitivity
    • Added a fix for urls with ports in them not working, from now it will take the port from the url to be the requesting port in the request unless the url has no port then it will default to the port of the url scheme
    • Fixed a typo on one of the tracking cookies
    • Fixed a bug where meta redirect urls would lose their case sensitivity after being extracted from the meta tags, same for the refresh header extracted URL
    Source code(tar.gz)
    Source code(zip)
    Odyssey.v1.0-SRC.rar(10.21 KB)
  • v0.9(May 29, 2021)

    • Added tracker boolean to each point's tooltip on the map
    • Added odyssey configuration file, to allow people to change certain settings the software uses (ex. useragent & tracking cookies presets)
    • Added configuration value loader
    • Made the method to get cookie prefixes and data not case sensitive as it used to be
    • General code fixes to follow PEPs & Codacy scan results
    Source code(tar.gz)
    Source code(zip)
    Odyssey.v0.9.-SRC.rar(9.86 KB)
  • v0.8(May 28, 2021)

    • Project renamed to Odyssey
    • New repository logo
    • Added requirements.txt for ease of installation
    • Changed from using format() string function to f-strings, in order to clean up the code a bit, because it was a bit bulky
    • Completely reorganized the codebase files, and correctly segregated them into their respective folders
    • Changed the get_data() method a lot, renamed it to get_ip_data() so that the name is meaningful and also made it just get the JSON response from IP-API instead of sending a new request to the API every time a data point was used in the map and CLI response
    • Added a check for 'Refresh' http header seen being used by Instagram to redirect out of their website
    • Added docustrings for each function the project
    • Fixed the bug where decoding the raw content received from the web server threw a UnicodeDecode error
    • Added a pre-decode content type check to see if the raw content is actually text which also fixes some issues when decoding the raw response using 'unicode-escape' (the UnicodeDecode error)
    • Made the new method to get the headers of the raw response independent of the raw response content
    Source code(tar.gz)
    Source code(zip)
    Odyssey.v0.8.-SRC.rar(19.37 KB)
  • v0.7(Jan 26, 2021)

    • Fixed a case where the next URL was seen to be a local ip / resolved to a local ip in the location header of the previous URL
    • Added an offset setting in the code for URLs that are at the same geo coordinates, so that they can be distinct
    • Changed font family for tool-tip on map
    • Added distinctions color-wise for the markers, green being the start, orange being the bounces and red being the end
    • Changed icon of markers
    Source code(tar.gz)
    Source code(zip)
    RedirectExplorer.v0.7.-SRC.rar(6.61 KB)
  • v0.6(Jan 19, 2021)

    • Added map generation to the URL redirect traceroute, so it can be visualized where the request goes around the world.
    • With this update, I had to add the time module to sleep the code, as the IP-API has a rate-limit and sometimes with many requests, the script can through an error from IP-API. I will be working on finding a similar IP information API to use in the future, to avoid this problem.
    • Added the folium module, to help with the map generation seen in this update
    Source code(tar.gz)
    Source code(zip)
    RedirectExplorer.v0.6.-SRC.rar(6.01 KB)
  • v0.5(Dec 29, 2020)

    ContentParser:

    • Added continuation statement to skip over javascript that does not help us find new redirects
    • Added new method to clear HTML tags from strings in order to get more accurate redirects from the javascript code of a website
    • Updated raw content decoding method from utf-8 to unciode-escape to handle python unicode characters (ex. \u0003), this still does not handle other languages yet

    Start:

    • Added SSL certificate retrieval for results

    Utils:

    • Added new get_ssl_cert() method in the utils.py module to get the ssl certificate from the url passed as the parameter
    • Added some more tracking cookie prefixes
    • Updated raw content decoding method from utf-8 to unciode-escape to handle python unicode characters (ex. \u0003), this still does not handle other languages yet
    Source code(tar.gz)
    Source code(zip)
    RedirectExplorer.v0.5.-SRC.rar(5.45 KB)
  • v0.4(Dec 27, 2020)

    • Acknowledgement of .decode() method not being appropriate for the purpose
    • Adjusted result message format
    • Added tracking cookies to the result message
    • Added cookie detection method = Added tracking cookie detection function to the cookie detection method (will be adding more tracking cookies to the code as it goes along)
    Source code(tar.gz)
    Source code(zip)
    RedirectExploer.v0.4.-.SRC.rar(4.88 KB)
  • v0.3(Dec 26, 2020)

    • Added more code to detect different types of javascript-based redirects [contentparser module]
    • Added the type of server running on the URL in the result traceroute, defaults to None if nothing is detected [start module]
    • Added code to detect local redirects as they weren't being picked up [start module]
    • Fixed an issue with links that included fragments but no queries, which would lead the request path being the wrong one, leading to inaccurate traceroutes [start module]
    • Added code to detect singular line javascript code that redirects users [contentparser module]
    • Quick code patch to certain cases of meta tags not being picked up by the contentparser module [contentparser module]
    • Added check to see if next_url variable is set if last redirect was local-based (for some reason it has issues) [start module]
    • Added new get_server() function to the utils module to get the type of server running on the URL [utils module]
    Source code(tar.gz)
    Source code(zip)
    RedirectExplorer.v0.3.-.SRC.rar(3.95 KB)
  • v0.2(Dec 25, 2020)

  • v0.1(Dec 25, 2020)

Owner
I am a developer that has a passion for programming, mathematics and cyber security. Currently Developer @South-Hollow
Mad Spammer is a python webhook spammer which is very easy and safe to use.

Mad Spammer 👿 Pre-Setup: Open your terminal/console and type: pip install module colorama python MadSpammer.py Setup: After doing that, you should be

1 Nov 26, 2021
TightVNC Vulnerability.

CVE-2022-23967 In TightVNC 1.3.10, there is an integer signedness error and resultant heap-based buffer overflow in InitialiseRFBConnection in rfbprot

MaherAzzouzi 15 Jul 11, 2022
A toolkit for web reconnaissance, it's fast and easy to use.

A toolkit for web reconnaissance, it's fast and easy to use. File Structure httpsuite/ main.py init.py db/ db.py init.py subdomains_db directories_db

whoami security 22 Jul 22, 2022
Search Shodan for Minecraft server IPs to grief

GriefBuddy This script searches Shodan for Minecraft server IPs to grief. This will return all servers connected to the public internet which Shodan h

26 Dec 29, 2022
DNSSEQ: PowerDNS with FALCON Signature Scheme

PowerDNS-based proof-of-concept implementation of DNSSEC using the post-quantum FALCON signature scheme.

Nils Wisiol 4 Feb 03, 2022
A simple automatic tool for finding vulnerable log4j hosts

Log4Scan A simple automatic tool for finding vulnerable log4j hosts Installation pip3 install -r requirements.txt Usage usage: log4scan.py [-h] (-f FI

Federico Rapetti 20018955 6 Mar 10, 2022
CVE-2021-43798Exp多线程批量验证脚本

Grafana V8.*任意文件读取Exp--多线程批量验证脚本 漏洞描述 Grafana是一个开源的度量分析与可视化套件。经常被用作基础设施的时间序列数据和应用程序分析的可视化,它在其他领域也被广泛的使用包括工业传感器、家庭自动化、天气和过程控制等。其 8.*版本任意文件读取漏洞,该漏洞目前为0d

2 Dec 16, 2021
Exploiting CVE-2021-42278 and CVE-2021-42287 to impersonate DA from standard domain user

About Exploiting CVE-2021-42278 and CVE-2021-42287 to impersonate DA from standard domain user Changed from sam-the-admin. Usage SAM THE ADMIN CVE-202

Evi1cg 500 Jan 06, 2023
Open Source Tool - Cybersecurity Graph Database in Neo4j

GraphKer Open Source Tool - Cybersecurity Graph Database in Neo4j |G|r|a|p|h|K|e|r| { open source tool for a cybersecurity graph database in neo4j } W

Adamantios - Marios Berzovitis 27 Dec 06, 2022
A honey token manager and alert system for AWS.

SpaceSiren SpaceSiren is a honey token manager and alert system for AWS. With this fully serverless application, you can create and manage honey token

287 Nov 09, 2022
Ethereum transaction decoder (community version).

EthTx Community Edition Community version of EthTx transaction decoder Local environment For local instance, you need few things: Depending on your di

240 Dec 21, 2022
DoSer.py - Simple DoSer in Python

DoSer.py - Simple DoSer in Python What is DoSer? DoSer is basically an HTTP Denial of Service attack that affects threaded servers. It works like this

8 Sep 02, 2022
Complet and easy to run Port Scanner with Python

Port_Scanner Complet and easy to run Port Scanner with Python Installation 1- git clone https://github.com/s120000/Port_Scanner 2- cd Port_Scanner 3-

1 May 19, 2022
OSINT Cybersecurity Tools

OSINT Cybersecurity Tools Welcome to the World of OSINT: An ongoing collection of awesome tools and frameworks, best security software practices, libr

Paul Veillard, P. Eng 7 Jul 01, 2022
A simple Outline Server Access Key Copy and Paste Web Interface

Outline Keychain A simple Outline Server Access Key Copy and Paste Web Interface Developed for key and password export and copy & paste for other Shad

Zhe 1 Dec 28, 2021
Separation of Mainlobes and Sidelobes in the Ultrasound Image Based on the Spatial Covariance (MIST) and Aperture-Domain Spectrum of Received Signals

Separation of Mainlobes and Sidelobes in the Ultrasound Image Based on the Spatial Covariance (MIST) and Aperture-Domain Spectrum of Received Signals

Rehman Ali 3 Jan 03, 2023
Tools for investigating Log4j CVE-2021-44228

Log4jTools Tools for investigating Log4j CVE-2021-44228 FetchPayload.py (Get java payload from ldap path provided in JNDI lookup). Example command: Re

MalwareTech 91 Dec 29, 2022
Searches through git repositories for high entropy strings and secrets, digging deep into commit history

truffleHog Searches through git repositories for secrets, digging deep into commit history and branches. This is effective at finding secrets accident

Truffle Security 10.1k Jan 09, 2023
D-810 is an IDA Pro plugin which can be used to deobfuscate code at decompilation time by modifying IDA Pro microcode.

Introduction fork from https://gitlab.com/eshard/d810 What is D-810 D-810 is an IDA Pro plugin which can be used to deobfuscate code at decompilation

Banny 30 Dec 06, 2022
Infoga is a tool gathering email accounts informations (ip,hostname,country,...) from different public source

Infoga - Email OSINT Infoga is a tool gathering email accounts informations (ip,hostname,country,...) from different public source (search engines, pg

m4ll0k (mallok) 1.8k Jan 04, 2023