Phishing URL abuses parser inconsistencies to evade filters
A phishing campaign uses userinfo fields, invalid hyphenated hostnames, and embedded victim emails in one URL to evade blocklists and confuse parsers while still working in browsers.
Sourceisc.sans.edu — open the original
What to check
- Applies to
- Whether this concerns you is not assessed; the names the report mentions are listed below.
SANS ISC handler Xavier Mertens analyzed a phishing email link that combines three obfuscation techniques in a single URL to defeat automated security tooling while remaining fully functional in browsers. The URL abuses the RFC 3986 'userinfo' field (a random string before the '@' in the authority) to make each link unique, defeating exact-match blocklists and likely serving as a per-victim tracking token. It also uses a hostname with labels starting/ending in hyphens (e.g., 'gynd--.koncar-hr.com'), which violates RFC 952/1123 hostname rules but resolves fine via DNS and browsers, causing strict validators and regex-based extractors to skip the URL entirely. The domain is a typosquat of the legitimate Croatian industrial group koncar.hr, likely using wildcard DNS to generate unique subdomains per victim.
The third trick appends the victim's own email address in the URL path, which phishing kits commonly use to pre-fill login forms and customize branding. This also causes naive parsers that split on the last '@' to misidentify the host as the victim's own trusted domain (e.g., isc.sans.edu), while WHATWG-compliant browsers correctly parse the authority up to the first '/' and connect to the attacker's actual server. The author notes attackers are not exploiting a software vulnerability but rather differences in how various tools parse URLs versus how browsers do.
For detection, the analyst recommends hunting for URLs containing more than one '@' character, hostname labels beginning or ending with hyphens, and paths containing the recipient's own email address as indicators of this technique. This is a defensive research/awareness piece with no named threat actor, malware family, or specific victim organization beyond the illustrative example.
Detection guidance
Hostname Labels with Leading or Trailing Hyphens
A behavioural hunt for the technique in general.
Detects DNS queries or HTTP requests to domains with labels that violate RFC 952/1123 (starting or ending with hyphens), used to evade regex validators while resolving correctly and mimicking legitimate domain structure. Auto-generated starting point — validate and tune in your environment before deploying. IOC matches can false-positive on shared infrastructure and decay as adversary infrastructure rotates.
title: Hostname Labels with Leading or Trailing Hyphens
description: Detects network traffic to hostnames containing labels that begin or
end with hyphens, violating RFC 952/1123 standards. This technique causes strict
validators and regex-based URL extractors to skip malformed hostnames while WHATWG
browsers and DNS still resolve them correctly, enabling phishing URLs to bypass
security tools.
tags:
- attack.stealth
- attack.t1036.005
- attack.t1566.002
logsource:
category: dns_query
product: windows
detection:
selection:
QueryName|re: ^-.*\..*|.*\.-\..*|.*\.-$
filter_localhost:
QueryName|startswith: localhost
condition: selection and not filter_localhost
falsepositives:
- Misconfigured internal DNS records with non-standard label formats
- Legacy or poorly maintained DNS zones in some enterprises
level: medium
id: a9b9265f-ea27-59af-a0bd-1c41703f774d
status: experimental
author: Vorant
2 more detections for this report are in the app — indicator rules, each with Sigma, Splunk SPL, and Elastic, some with Suricata as well. Free account, no card.
Behavioural rules are generated from public reporting — validate in your environment before deploying.
Source reporting: https://isc.sans.edu/diary/rss/33366
Free public brief. The indicators and the detections with Splunk SPL already written (plus Elastic and KQL where they apply) are in the app with a free account, no card. Slack alerts on the vendors you run come with the paid plans, and a new account gets three days of them.
What this brief leaves out
This page is the free tier: the write-up, the severity, the names. In the app the same report carries its extracted indicators and its detections (Splunk SPL already written, plus Elastic and Microsoft KQL where they apply). The paid plans add the security research and news reporting the free tier leaves out.
It sits in a corpus of 16,445 reports from 149 sources, 666 of them written in the last seven days, and it grows through the day.
A new account starts with three days of all of it, no card, then keeps the government and CERT reporting free. Slack alerts are a paid-plan feature: name the vendors you run and Slack hears about the reports that touch them, not the rest of the week's. Nothing is charged unless you subscribe.
Create a free account What it costs