ppmap – scanner/exploitation tool written in GO


A scanner/exploitation tool written in GO, which leverages Prototype Pollution to XSS by exploiting known gadgets.


A simple scanner/exploitation tool written in GO which automatically exploits known and existing gadgets (checks for specific variables in the global context) to perform XSS via Prototype Pollution. NOTE: The program only exploits known gadgets, but does not cover code analysis or any advanced Prototype Pollution exploitation, which may include custom gadgets.


Make sure to have Chromium/Chrome installed:

sudo sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
sudo apt-get update
sudo apt-get install google-chrome-stable

Make sure to have chromedp installed:

go get -u github.com/chromedp/chromedp


  • Automatically
    • Download the already compiled binary here
    • Give it the permission to execute chmod +x ppmap
  • Manually (compile it yourself)
    • Clone the project:
git clone https://github.com/kleiton0x00/ppmap.git
  • Change directory to ppmap folder:
cd ~/ppmapBuild the binary
go build ppmap.go


Using the program is very simple, you can either:

  • scan a directory/file (or even just the website):
echo 'https://target.com/index.html' | ./ppmap
  • or endpoint:
echo 'http://target.com/something/?page=home' | ./ppmap

For mass scanning:
cat url.txt | ./ppmap where url.txt contains all url(s) in column.



Feel free to test the tool on the following websites as a part of demonstration:



  • Identify if the website is vulnerable to Prototype Pollution by heuristic scan
  • Fingerprint the known gadgets (checks for specific variables in the global context)
  • Display the final exploit & ready to perform XSS