id: open-proxy-localhost info: name: Open Proxy to Other Web Ports via Proxy's localhost Interface author: sullo severity: high description: The host is configured as a proxy which allows access to web ports on the host's internal interface. remediation: Disable the proxy or restrict configuration to only allow access to approved hosts/ports. reference: - https://blog.projectdiscovery.io/abusing-reverse-proxies-internal-access/ - https://en.wikipedia.org/wiki/Open_proxy - https://www.acunetix.com/vulnerabilities/web/apache-configured-to-run-as-proxy/ classification: cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N cvss-score: 8.6 cwe-id: CWE-441 metadata: max-request: 6 tags: exposure,config,proxy,misconfig,fuzz http: - raw: - |+ GET / HTTP/1.1 Host: {{Hostname}} - |+ GET http://somethingthatdoesnotexist/ HTTP/1.1 Host: somethingthatdoesnotexist - |+ GET http://127.0.0.1/ HTTP/1.1 Host: 127.0.0.1 - |+ GET https://127.0.0.1/ HTTP/1.1 Host: 127.0.0.1 - |+ GET http://localhost/ HTTP/1.1 Host: localhost - |+ GET https://localhost/ HTTP/1.1 Host: localhost unsafe: true stop-at-first-match: true matchers: - type: dsl condition: or dsl: - (!contains(body_1, "IIS7") && !contains(body_2, "IIS7")) && (contains(body_3, "IIS7") || contains(body_4, "IIS7") || contains(body_5, "IIS7") || contains(body_6, "IIS7")) - (!contains(body_1, "503 Service Unavailable") && !contains(body_2, "503 Service Unavailable")) && (contains(body_3, "503 Service Unavailable") || contains(body_4, "503 Service Unavailable") || contains(body_5, "503 Service Unavailable") || contains(body_6, "503 Service Unavailable")) - (!contains(body_1, "default welcome page") && !contains(body_2, "default welcome page")) && (contains(body_3, "default welcome page") || contains(body_4, "default welcome page") || contains(body_5, "default welcome page") || contains(body_6, "default welcome page")) - (!contains(body_1, "IIS Windows Server") && !contains(body_2, "IIS Windows Server")) && (contains(body_3, "IIS Windows Server") || contains(body_4, "IIS Windows Server") || contains(body_5, "IIS Windows Server") || contains(body_6, "IIS Windows Server")) - (!contains(body_1, "Microsoft Azure App") && !contains(body_2, "Microsoft Azure App")) && (contains(body_3, "Microsoft Azure App") || contains(body_4, "Microsoft Azure App") || contains(body_5, "Microsoft Azure App") || contains(body_6, "Microsoft Azure App")) - (!contains(body_1, "Welcome to IIS") && !contains(body_2, "Welcome to IIS")) && (contains(body_3, "Welcome to IIS") || contains(body_4, "Welcome to IIS") || contains(body_5, "Welcome to IIS") || contains(body_6, "Welcome to IIS")) - (!contains(body_1, "Welcome to Microsoft Windows") && !contains(body_2, "Welcome to Microsoft Windows")) && (contains(body_3, "Welcome to Microsoft Windows") || contains(body_4, "Welcome to Microsoft Windows") || contains(body_5, "Welcome to Microsoft Windows") || contains(body_6, "Welcome to Microsoft Windows")) - (!contains(body_1, "Welcome to Windows") && !contains(body_2, "Welcome to Windows")) && (contains(body_3, "Welcome to Windows") || contains(body_4, "Welcome to Windows") || contains(body_5, "Welcome to Windows") || contains(body_6, "Welcome to Windows")) - (!contains(body_1, "Welcome to Windows") && !contains(body_2, "Welcome to Windows")) && (contains(body_3, "Welcome to Windows") || contains(body_4, "Welcome to Windows") || contains(body_5, "Welcome to Windows") || contains(body_6, "Welcome to Windows")) - (!contains(body_1, "It works") && !contains(body_2, "It works")) && (contains(body_3, "It works") || contains(body_4, "It works") || contains(body_5, "It works") || contains(body_6, "It works")) # digest: 490a0046304402204a69f7542ff2a50a4165edd9f554e7c7c52121f127a95bcb8f97c86b4affaf7c0220716d16b16fa8d641d6645b0bc6d82b3b3a5be1554d8b650f469656640b38ee7f:922c64590222798bb761d5b6d8e72950