Loading HuntDB...

GET /api/v2/url_info endpoint is vulnerable to Blind SSRF

High
A
Automattic
Submitted None
Reported by atc_h1h1

Vulnerability Details

Technical details and impact analysis

Server-Side Request Forgery (SSRF)
## Summary: GET /api/v2/url_info endpoint is vulnerable to Blind SSRF. I am able to hit both Internal and External services via **url** parameter by replacing with internal and external url. ## Platform(s) Affected: https://www.tumblr.com/ ## Steps To Reproduce: 1. Login to https://www.tumblr.com/ 2. Follow any blog and intercept request via Proxy Request : GET /api/v2/url_info?url={{}}&fields%5Bblogs%5D=avatar%2Cname%2Ctitle%2Curl%2Cdescription_npf%2Ctheme%2Cuuid%2Ccan_be_followed%2C%3Ffollowed%2C%3Fis_member%2Cshare_likes%2Cshare_following%2Ccan_subscribe%2Ccan_message%2Csubscribed%2Cask%2C%3Fcan_submit%2C%3Fis_blocked_from_primary%2C%3Fadvertiser_name%2C%3Ftop_tags%2C%3Fprimary HTTP/1.1 Host: www.tumblr.com Response: HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8 3. Now replace **url** parameter to your controller server url and send it. 4. You will get request to your server. I could get verify it via IP Address: **74.114.154.11** NetRange: 74.114.152.0 - 74.114.155.255 CIDR: 74.114.152.0/22 NetName: AUTOMATTIC NetHandle: NET-74-114-152-0-1 Parent: NET74 (NET-74-0-0-0-0) NetType: Direct Assignment OriginAS: AS2635 Organization: Automattoque (AU-187) RegDate: 2017-04-20 Updated: 2017-04-21 Ref: https://rdap.arin.net/registry/ip/74.114.152.0 OrgName: Automattoque OrgId: AU-187 Address: P.O. Box 997 City: Halifax StateProv: NS PostalCode: B3J 2X2 Country: CA RegDate: 2015-11-25 Updated: 2017-04-21 Ref: https://rdap.arin.net/registry/entity/AU-187 5. Now replace it with localhost url -> http://127.0.0.1:9090 and see response will be 404 but based on response time, port status can be identified. Limited Internal and External SSRF is performed. Attacker can target internal services by sending requests in bulk via mentioned endpoint. Attacker can get ports status by fuzzing or intruder attacker based on response time. Attacker would be able to target internal services and try to exhaust/target internal infrastructure. **Remediation Strategies :** 1. **Only white listed URLs should be allowed for this endpoint. As user can only follow tumblr blogs, there would be some sort of filter mechanism to whitelist tumblr blogs. Any other URLs should be blocked.** 2. **Not only for this API endpoint, any localhost URLs provided by user should be blocked.** 2. **Any Out-of-band request from tumblr should be sent via CLIENT only. Here in this case, server is requesting user controller URL input and requesting resource which is exposing internal IP details.** ## Impact Attacker can get ports status by fuzzing or intruder attacker based on response time. Attacker would be able to target internal services and try to exhaust/target internal infrastructure.

Report Details

Additional information and metadata

State

Closed

Substate

Informative

Submitted

Weakness

Server-Side Request Forgery (SSRF)