TL;DR
Yes, some SSL domains still contain the nul character (x00) for testing or legacy reasons. This guide shows you how to find them using online tools and command-line methods.
Finding Domains with NUL Characters in their Names
- Understand the Problem: The nul character (
x00) is a control character that can cause issues with DNS resolution and certificate validation. While generally discouraged, some domains were created with it intentionally for testing or due to historical quirks. - Use Online Tools: Several websites scan for domains containing the nul character. These are often the easiest way to find examples:
- crt.sh: This is a powerful certificate search tool. You can use it to specifically look for certificates with domain names including
%00(the URL-encoded representation of the nul character).Go to https://crt.sh/ and enter
%00in the search box. - SSL Labs SSL Server Test: While not a direct finder, running tests on suspect domains identified elsewhere can confirm if they have issues related to nul characters.
Go to https://www.ssllabs.com/ssltest/ and enter the domain name.
- crt.sh: This is a powerful certificate search tool. You can use it to specifically look for certificates with domain names including
- Command-Line Tools (dig): You can use
digto query DNS records directly, looking for responses that might indicate a nul character in the domain name.- Basic dig command: This will show you all DNS records for a given domain.
dig example.com - Searching for specific patterns: You can filter the output of
digusing tools likegrepto look for the nul character’s encoded representation.dig example.com | grep '%00'Note: This method is less reliable as it depends on how the DNS server handles and returns results.
- Basic dig command: This will show you all DNS records for a given domain.
- Command-Line Tools (nslookup): Similar to
dig,nslookupcan be used but offers less control over query types.nslookup example.comAgain, filtering the output with
grep '%00'might reveal nul characters. - Python Scripting (Advanced): For more automated searching, you can write a Python script using libraries like
dnspythonto query DNS records and check for the nul character.import dns.resolver def check_domain(domain): try: answers = dns.resolver.resolve(domain) for rdata in answers: if 'x00' in str(rdata): print(f"Domain {domain} contains a nul character!") except dns.resolver.NXDOMAIN: pass # Domain does not exist except Exception as e: print(f"Error checking {domain}: {e}") # Example usage domain_list = ['example.com', 'test.com'] for domain in domain_list: check_domain(domain) - Testing the Domains: Once you’ve identified potential domains, test them with an SSL checker (like SSL Labs) to confirm if the nul character causes issues.
- Be Careful: Testing potentially malicious domains can be risky. Use a virtual machine or isolated environment for testing.

