Hi,

in the light of a recent Usenix paper "Injection Attacks Reloaded: Tunnelling Malicious Payloads over DNS" [1],
we tested our dnsdist -> PowerDNS Recursor setup [2]
with the following results:
(quoting from their test page [3])

Special character filtering

These tests will test if your resolver validates hostnames per RFC952. Other 
than domain names, which can contain arbitrary characters, hostnames are only 
allowed to contain the characters [0-9a-z-.]. To reduce the chance the an 
application which is unaware of this is attacked using a domain name containg 
an injection payloads, stub resolvers should thereby filtering such names.
The test domain containing a slash (/) was not filtered by your resolver.
The test domain containing an at (@) was not filtered by your resolver.
The test domain containing an XSS payload (<img/src=''/onerror='alert("xss")'>) 
was not filtered by your resolver.
The test domain containing an SQLi payload (a'OR''=''--) was not filtered by 
your resolver.
The test domain containing an ANSI escape sequence (\027[31\;1\;4mHello\027[0m) 
was not filtered by your resolver.


We were wondering if there is an easy way in Recursor's configuration to enable validation of hostnames similar to their python proof of concept [4]? If there is no such option: Would you accept a feature request via GH to implement such an option?


I'm also interested in your opinions on whether such validation might cause issues in practice.


best regards,
Christoph


[1] https://www.usenix.org/system/files/sec21-jeitner.pdf
[2] https://applied-privacy.net/services/dns/
[3] https://xdi-attack.net/test.html
[4] https://xdi-attack.net/proxy.html
_______________________________________________
Pdns-users mailing list
Pdns-users@mailman.powerdns.com
https://mailman.powerdns.com/mailman/listinfo/pdns-users

Reply via email to