Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/saelo/dnsrebinder
Go tool to perform DNS rebinding
https://github.com/saelo/dnsrebinder
Last synced: about 1 month ago
JSON representation
Go tool to perform DNS rebinding
- Host: GitHub
- URL: https://github.com/saelo/dnsrebinder
- Owner: saelo
- License: mit
- Created: 2018-11-01T15:48:21.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2018-11-01T15:49:46.000Z (about 6 years ago)
- Last Synced: 2024-06-20T13:37:17.882Z (6 months ago)
- Language: Go
- Size: 3.91 KB
- Stars: 26
- Watchers: 3
- Forks: 7
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# DNS Rebinder
Lightweight DNS Server to perform DNS rebinding attacks.
# How it works
The desired answers to DNS queries are encoded into the hostname. This way, no additional communication is required while also staying flexible (i.e. no hardcoded IP addresses). The expected hostname format is `randstring_ip1_ip2.domain` where randstring could e.g. be the current timestemp. The IP addresses are encoded as 32-bit values in hexadecimal representation, thus e.g. 127.0.0.1 becomes 7f000001. A complete DNS request that will first resolve to 216.58.208.46 (Google), then to 127.0.0.1 could thus look like this: `1337_d83ad02e_7f000001.dnsrebinder.whatever.net`.
Upon seing a hostname for the first time, the server will respond with IP1. Subsequent requests for the same hostname will be answered with IP2. Additionally, the format `randstring_ip.domain` is supported, in which case the server will always respond with the provided IP address. All other requests will be answered with a hardcoded IP address (currently 1.3.3.7).
To avoid overly high memory usage, seen entries will be flushed on a regular basis (currently once per hour).