Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 History  





2 Context  





3 Notes  





4 Requirements  





5 Security  





6 References  





7 Further reading  














Web Proxy Auto-Discovery Protocol






Català
Deutsch
Español
Italiano

Português
Русский
Türkçe

 

Edit links
 









Article
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Cite this page
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 
















Appearance
   

 






From Wikipedia, the free encyclopedia
 


The Web Proxy Auto-Discovery (WPAD) Protocol is a method used by clients to locate the URL of a configuration file using DHCP and/or DNS discovery methods. Once detection and download of the configuration file is complete, it can be executed to determine the proxy for a specified URL.

History[edit]

The WPAD protocol only outlines the mechanism for discovering the location of this file, but the most commonly deployed configuration file format is the proxy auto-config format originally designed by Netscape in 1996 for Netscape Navigator 2.0.[1] The WPAD protocol was drafted by a consortium of companies including Inktomi Corporation, Microsoft Corporation, RealNetworks, Inc., and Sun Microsystems, Inc. (now Oracle Corp.). WPAD is documented in an INTERNET-DRAFT which expired in December 1999.[2] However, WPAD is still supported by all major browsers.[3][4] WPAD was first included with Internet Explorer 5.0.

Context[edit]

In order for all browsers in an organization to be supplied the same proxy policy, without configuring each browser manually, both the below technologies are required:

The WPAD standard defines two alternative methods the system administrator can use to publish the location of the proxy configuration file, using the Dynamic Host Configuration Protocol (DHCP) or the Domain Name System (DNS):

Before fetching its first page, a web browser implementing this method sends a DHCPINFORM query to the local DHCP server, and uses the URL from the WPAD option in the server's reply. If the DHCP server does not provide the desired information, DNS is used. If, for example, the network name of the user's computer is pc.department.branch.example.com, the browser will try the following URLs in turn until it finds a proxy configuration file within the domain of the client:

(Note: These are examples and are not "live" URLs due to them employing the reserved domain name of "example.com".)

Additionally on Windows if the DNS query is unsuccessful then Link-Local Multicast Name Resolution (LLMNR) and/or NetBIOS will be used.[5][6]

Notes[edit]

DHCP has a higher priority than DNS: if DHCP provides the WPAD URL, no DNS lookup is performed. This only works with DHCPv4. In DHCPv6, there is no WPAD-Option defined.
Notice that Firefox does not support DHCP, only DNS, and the same is true for Chrome on platforms other than Windows and ChromeOS, and for versions of Chrome older than version 13.[3][4]

When constructing the query packet, DNS lookup removes the first part of the domain name (the client host name) and replaces it with wpad. Then, it "moves up" in the hierarchy by removing more parts of the domain name, until it finds a WPAD PAC file or leaves the current organisation.

The browser guesses where the organisation boundaries are. The guess is often right for domains like 'company.com' or 'university.edu', but wrong for 'company.co.uk' (see security below).

For DNS lookups, the path of the configuration file is always wpad.dat. For the DHCP protocol, any URL is usable. For traditional reasons, PAC files are often called proxy.pac (of course, files with this name will be ignored by the WPAD DNS search).

The MIME type of the configuration file must be "application/x-ns-proxy-autoconfig". See Proxy auto-config for more details.

Internet Explorer and Konqueror are currently the only browsers offering support for both the DHCP and DNS methods; the DNS method is supported by most major browsers.[7]

Requirements[edit]

In order for WPAD to work, a few requirements have to be met:

Security[edit]

While greatly simplifying configuration of one organisation's web browsers, the WPAD protocol has to be used with care: simple mistakes can open doors for attackers to change what appears on a user's browser:

Through the WPAD file, the attacker can point users' browsers to their own proxies and intercept and modify the WWW traffic of everyone connected to the network. Although a simplistic fix for Windows WPAD handling was applied in 2005, it only fixed the problem for the .com domain. A presentation at Kiwicon showed that the rest of the world was still critically vulnerable to this security hole, with a sample domain registered in New Zealand for testing purposes receiving proxy requests from all over the country at the rate of several a second. Several of the wpad.tld domain names (including COM, NET, ORG, and US) now point to the client loopback address to help protect against this vulnerability, though some names are still registered (wpad.co.uk).

Thus, an administrator should make sure that a user can trust all the DHCP servers in an organisation and that all possible wpad domains for the organisation are under control. Furthermore, if there's no wpad domain configured for an organisation, a user will go to whatever external location has the next wpad site in the domain hierarchy and use that for its configuration. This allows whoever registers the wpad subdomain in a particular country to perform a man-in-the-middle attack on large portions of that country's internet traffic by setting themselves as a proxy for all traffic or sites of interest.

On top of these traps, the WPAD method fetches a JavaScript file and executes it on all users browsers, even when they have disabled JavaScript for viewing web pages.

References[edit]

  1. ^ "Navigator Proxy Auto-Config File Format". Netscape Navigator Documentation. March 1996. Archived from the original on 2007-03-07. Retrieved 2015-02-10.
  • ^ Gauthier, Paul; Josh Cohen; Martin Dunsmuir; Charles Perkins (1999-07-28). "Web Proxy Auto-Discovery Protocol (INTERNET-DRAFT)". IETF. Retrieved 2015-02-10.
  • ^ a b "Chromium #18575: Non-Windows platforms: WPAD (proxy autodetect discovery) does not test DHCP". 2009-08-05. Retrieved 2015-02-10.
  • ^ a b "Firefox #356831 - Proxy autodiscovery doesn't check DHCP (option 252)". 2006-10-16. Retrieved 2015-02-10.
  • ^ "Troubleshooting Web Proxy Auto Discovery (WPAD) issues". GFI Software. Archived from the original on 2021-04-14. Retrieved 2015-02-10.
  • ^ Hjelmvik, Erik (2012-07-17). "WPAD Man in the Middle". Retrieved 2015-02-10.
  • ^ "Konqueror: Automatic Proxy Discovery". KDE. 2013-05-20. Archived from the original on 2015-02-11. Retrieved 2015-02-10.
  • ^ King, Michael (2010-02-17). "WPAD does not resolve in DNS". Retrieved 2015-02-10.
  • ^ "Removing WPAD from DNS block list". Microsoft TechNet. 26 September 2008. Retrieved 2015-02-10.
  • ^ "Alert (TA16-144A) WPAD Name Collision Vulnerability". US-CERT. 2016-10-06. Retrieved 2017-05-02.
  • Further reading[edit]


    Retrieved from "https://en.wikipedia.org/w/index.php?title=Web_Proxy_Auto-Discovery_Protocol&oldid=1172024646"

    Categories: 
    Internet Explorer
    Web browsers
    Proxy servers
    Computer configuration
    Internet Standards
    Domain Name System
    Service discovery protocols
    Hidden categories: 
    Articles with short description
    Short description matches Wikidata
     



    This page was last edited on 24 August 2023, at 13:35 (UTC).

    Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Mobile view



    Wikimedia Foundation
    Powered by MediaWiki