├── images
├── step-1.png
├── step-2.png
├── step-3.png
├── step-4.png
├── step-5.png
└── step-6.png
└── README.md
/images/step-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arturssmirnovs/challenge-0124.intigriti.io-january-xss-challenge/main/images/step-1.png
--------------------------------------------------------------------------------
/images/step-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arturssmirnovs/challenge-0124.intigriti.io-january-xss-challenge/main/images/step-2.png
--------------------------------------------------------------------------------
/images/step-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arturssmirnovs/challenge-0124.intigriti.io-january-xss-challenge/main/images/step-3.png
--------------------------------------------------------------------------------
/images/step-4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arturssmirnovs/challenge-0124.intigriti.io-january-xss-challenge/main/images/step-4.png
--------------------------------------------------------------------------------
/images/step-5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arturssmirnovs/challenge-0124.intigriti.io-january-xss-challenge/main/images/step-5.png
--------------------------------------------------------------------------------
/images/step-6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arturssmirnovs/challenge-0124.intigriti.io-january-xss-challenge/main/images/step-6.png
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Prototype Pollution Leading to XSS Exploitation: Intigriti's January Challenge
2 |
3 | ## Overview
4 |
5 | Intigriti's January XSS challenge presented an interesting case involving prototype pollution leading to XSS exploitation. The following steps detail the discovery, analysis, and exploitation of the vulnerability in the provided web application.
6 |
7 | ### Step 1: Initial Inspection
8 |
9 | Upon initial inspection, it was observed that certain parameters, particularly the `name` parameter, were susceptible to XSS attacks. Attempts to inject HTML code into the `name` parameter revealed that the HTML was rendered on the page. However, further scrutiny revealed that the server had implemented sensitization measures, preventing direct XSS exploitation through the `name` parameter.
10 |
11 |
12 |
13 | ### Step 2: Checking Packages
14 |
15 | Analysis of the `package.json` file indicated recent updates to the packages used in the application. Despite this, upon inspecting the source code, it was identified that the Axios and jQuery libraries were loaded from external JavaScript files.
16 |
17 |
18 |
19 | ### Step 3: Outdated Package
20 |
21 | Further investigation revealed that the Axios package had undergone recent updates. Given that the `$("search")` form element, passed to Axios, was susceptible to prototype pollution, an attempt to exploit this vulnerability was initiated. A comparison of the source code between the application's Axios version and the latest Axios version exposed differences directly related to prototype pollution.
22 |
23 |
25 |
29 |
33 |
57 |
58 | This comprehensive analysis showcases the identification and exploitation of prototype pollution leading to XSS, emphasizing the significance of keeping packages up-to-date and addressing vulnerabilities in web applications.
59 |
60 | #### References
61 |
62 | * https://challenge-0124.intigriti.io/
63 | * https://challenge-0124.intigriti.io/challenge
64 | * https://github.com/axios/axios/releases/tag/v1.6.4
65 | * https://github.com/axios/axios/commit/3c0c11cade045c4412c242b5727308cff9897a0e
66 |
--------------------------------------------------------------------------------