PlayStation · Report #826097
SSRF chained to hit internal host leading to another SSRF which allows to read internal images.
Summary
Report Summary:
We found an SSRF at https://image.api.np.km.playstation.net/
Vulnerable endpoints: /images , /dis/images. using image GET parameter.
Description
This endpoint allows us to fetch a remote image over HTTP protocol using the image GET parameter and convert them to the desired format using the GET parameter format.
We found that this could hit internal hosts however the response needs to be a valid image and also file protocol isn't working here.
For example :
The host https://store.mgmt.playstation.com/ (mgmt keywords hosts are meant to be internal for PSN) will respond with a 403 however I found it hosts an image that can open using this SSRF.
This will give you a 403.
Taking it further and finding another SSRF to extract internal images using file protocol.
We found an internal host of PSN which serves remote images with our given text (PhantomJs) on the further analysis we found this service could make use of file protocol as well and hence we could extract internal images as PoC.
Host : https://dis.api.np.playstation.net/dis/v1/banners?backplate=https://homer.dl.playstation.net/pr/bam-art/272/352/44592b67-85ac-41d6-b310-334363c5ea58.jpg&dimensions=790x250&price=$36.99&price_discount=$24.41&format[]=PS4&type=Full Game&locale=en_CA&cta=Download Now!&output=png&tpl=banner-web-store&store=game®ion=us&
Opening the above URL will result in a timeout.
We use our SSRF to hit on this host and abuse the other SSRF to read internal files/images.
Flow is:
image.api.np.km.playstation.net -> dis.api.np.playstation.net -> fetches the local image using file://-> adds given data on image -> image served on (dis.api.np.playstation.net) -> images served to us (using image.api.np.km.playstation.net)
Steps to reproduce:
To open file:////usr/share/pixmaps/system-logo-white.png on dis.api.np.playstation.net host using image.api.np.km.playstation.net.
Impact
SSRF to local images read using file:///.
How it was found
The write-up for this report has not been downloaded yet, or the program disclosed it without one. Read it on HackerOne.