Kestrel
tcp/443 tcp/80
Exposing Swagger/OpenAPI documentation is primarily a risk if your API has underlying security flaws, as it gives attackers a precise roadmap to find them.
Those detail every endpoint, parameter, and data model, making it easier to discover and exploit vulnerabilities like broken access control or injection points.
While a perfectly secure API mitigates the danger, protecting your documentation is a critical layer of defense that forces attackers to work without a map.
Severity: info
Fingerprint: 5733ddf49ff49cd1aad03549668fb2d450efc5458260ffc60a7cc7c77d0927ef
Public Swagger UI/API detected at path: /swagger/index.html - sample paths:
DELETE /api/dashboard
DELETE /api/video-files/file/{id}
GET /api/account/billing/url
GET /api/account/forgot-password
GET /api/account/info
GET /api/account/resend-confirmation-email
GET /api/admin/users
GET /api/auth/logout
GET /api/billing/tariffs
GET /api/billing/users/currentTariff
GET /api/dashboard/{streamId}
GET /api/location-groups
GET /api/location-groups/{id}
GET /api/locations/{id}
GET /api/test
GET /api/test/create-test-user
GET /api/video-files/by-location-id/{locationId}
GET /api/video-files/{id}
GET /api/video-streams/by-location-id/{locationId}
GET /api/video-streams/{id}
POST /api/account/register
POST /api/auth/login
POST /api/billing/payments/invoicePayment
POST /api/locations
POST /api/video-files
POST /api/video-processing-request/start/{streamId}
POST /api/video-streams
PUT /api/account/email-confirmation
PUT /api/account/reset-password
PUT /api/account/reset-password-by-token
PUT /api/account/update
PUT /api/billing/users/createUsers
PUT /api/billing/users/tariff/update
PUT /api/dashboard/{keyId}
PUT /api/video-processing-request/stop/{streamId}
Severity: info
Fingerprint: 5733ddf49ff49cd12ec8532c2ec8532c2ec8532c2ec8532c2ec8532c2ec8532c
Public Swagger UI/API detected at path: /swagger/index.html
Exposing Swagger/OpenAPI documentation is primarily a risk if your API has underlying security flaws, as it gives attackers a precise roadmap to find them.
Those detail every endpoint, parameter, and data model, making it easier to discover and exploit vulnerabilities like broken access control or injection points.
While a perfectly secure API mitigates the danger, protecting your documentation is a critical layer of defense that forces attackers to work without a map.
Severity: info
Fingerprint: 5733ddf49ff49cd12ec8532c2ec8532c2ec8532c2ec8532c2ec8532c2ec8532c
Public Swagger UI/API detected at path: /swagger/index.html
Severity: info
Fingerprint: 5733ddf49ff49cd1aad03549668fb2d450efc5458260ffc60a7cc7c77d0927ef
Public Swagger UI/API detected at path: /swagger/index.html - sample paths:
DELETE /api/dashboard
DELETE /api/video-files/file/{id}
GET /api/account/billing/url
GET /api/account/forgot-password
GET /api/account/info
GET /api/account/resend-confirmation-email
GET /api/admin/users
GET /api/auth/logout
GET /api/billing/tariffs
GET /api/billing/users/currentTariff
GET /api/dashboard/{streamId}
GET /api/location-groups
GET /api/location-groups/{id}
GET /api/locations/{id}
GET /api/test
GET /api/test/create-test-user
GET /api/video-files/by-location-id/{locationId}
GET /api/video-files/{id}
GET /api/video-streams/by-location-id/{locationId}
GET /api/video-streams/{id}
POST /api/account/register
POST /api/auth/login
POST /api/billing/payments/invoicePayment
POST /api/locations
POST /api/video-files
POST /api/video-processing-request/start/{streamId}
POST /api/video-streams
PUT /api/account/email-confirmation
PUT /api/account/reset-password
PUT /api/account/reset-password-by-token
PUT /api/account/update
PUT /api/billing/users/createUsers
PUT /api/billing/users/tariff/update
PUT /api/dashboard/{keyId}
PUT /api/video-processing-request/stop/{streamId}
Open service 13.74.252.44:443 · app.visius.ai
2026-01-23 01:15
HTTP/1.1 200 OK
Content-Length: 3070
Connection: close
Content-Type: text/html
Date: Fri, 23 Jan 2026 01:16:04 GMT
Server: Kestrel
Accept-Ranges: bytes
ETag: "1d9cc248668147e"
Last-Modified: Fri, 11 Aug 2023 07:22:03 GMT
X-Content-Type-Options: nosniff
X-XSS-Protection: 1
Page title: Visius. Личный кабинет
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Личный кабинет Visius"/><link rel="apple-touch-icon" href="/logo192.png"/><link rel="manifest" href="/manifest.json"/><link rel="preconnect" href="https://fonts.gstatic.com"><link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700&family=Rubik:wght@400;500;700&display=swap" rel="stylesheet"><title>Visius. Личный кабинет</title><style>body,html{height:100%}#root{min-height:100%;display:flex;flex-direction:column}</style><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElement(a);r.async=!0,r.src="https://www.googletagmanager.com/gtm.js?id=GTM-KSSNG6Z",m.parentNode.insertBefore(r,m)}(window,document,"script","dataLayer")</script><link href="/static/css/2.a7d492da.chunk.css" rel="stylesheet"><link href="/static/css/main.493f5306.chunk.css" rel="stylesheet"></head><body><noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-KSSNG6Z" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(e){function r(r){for(var n,i,l=r[0],a=r[1],p=r[2],c=0,s=[];c<l.length;c++)i=l[c],Object.prototype.hasOwnProperty.call(o,i)&&o[i]&&s.push(o[i][0]),o[i]=0;for(n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n]);for(f&&f(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,l=1;l<t.length;l++){var a=t[l];0!==o[a]&&(n=!1)}n&&(u.splice(r--,1),e=i(i.s=t[0]))}return e}var n={},o={1:0},u=[];function i(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,i),t.l=!0,t.exports}i.m=e,i.c=n,i.d=function(e,r,t){i.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,r){if(1&r&&(e=i(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(i.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)i.d(t,n,function(r){return e[r]}.bind(null,n));return t},i.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(r,"a",r),r},i.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},i.p="/";var l=this["webpackJsonpvisius-spa"]=this["webpackJsonpvisius-spa"]||[],a=l.push.bind(l);l.push=r,l=l.slice();for(var p=0;p<l.length;p++)r(l[p]);var f=a;t()}([])</script><script src="/static/js/2.45339199.chunk.js"></script><script src="/static/js/main.25f19c63.chunk.js"></script></body></html>
Open service 13.74.252.44:80 · app.visius.ai
2026-01-22 19:42
HTTP/1.1 200 OK
Content-Length: 3070
Connection: close
Content-Type: text/html
Date: Thu, 22 Jan 2026 19:42:33 GMT
Server: Kestrel
Accept-Ranges: bytes
ETag: "1d9cc248668147e"
Last-Modified: Fri, 11 Aug 2023 07:22:03 GMT
X-Content-Type-Options: nosniff
X-XSS-Protection: 1
Page title: Visius. Личный кабинет
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Личный кабинет Visius"/><link rel="apple-touch-icon" href="/logo192.png"/><link rel="manifest" href="/manifest.json"/><link rel="preconnect" href="https://fonts.gstatic.com"><link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700&family=Rubik:wght@400;500;700&display=swap" rel="stylesheet"><title>Visius. Личный кабинет</title><style>body,html{height:100%}#root{min-height:100%;display:flex;flex-direction:column}</style><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElement(a);r.async=!0,r.src="https://www.googletagmanager.com/gtm.js?id=GTM-KSSNG6Z",m.parentNode.insertBefore(r,m)}(window,document,"script","dataLayer")</script><link href="/static/css/2.a7d492da.chunk.css" rel="stylesheet"><link href="/static/css/main.493f5306.chunk.css" rel="stylesheet"></head><body><noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-KSSNG6Z" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(e){function r(r){for(var n,i,l=r[0],a=r[1],p=r[2],c=0,s=[];c<l.length;c++)i=l[c],Object.prototype.hasOwnProperty.call(o,i)&&o[i]&&s.push(o[i][0]),o[i]=0;for(n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n]);for(f&&f(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,l=1;l<t.length;l++){var a=t[l];0!==o[a]&&(n=!1)}n&&(u.splice(r--,1),e=i(i.s=t[0]))}return e}var n={},o={1:0},u=[];function i(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,i),t.l=!0,t.exports}i.m=e,i.c=n,i.d=function(e,r,t){i.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,r){if(1&r&&(e=i(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(i.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)i.d(t,n,function(r){return e[r]}.bind(null,n));return t},i.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(r,"a",r),r},i.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},i.p="/";var l=this["webpackJsonpvisius-spa"]=this["webpackJsonpvisius-spa"]||[],a=l.push.bind(l);l.push=r,l=l.slice();for(var p=0;p<l.length;p++)r(l[p]);var f=a;t()}([])</script><script src="/static/js/2.45339199.chunk.js"></script><script src="/static/js/main.25f19c63.chunk.js"></script></body></html>
Open service 13.74.252.44:443 · app.visius.ai
2026-01-11 09:27
HTTP/1.1 200 OK
Content-Length: 3070
Connection: close
Content-Type: text/html
Date: Sun, 11 Jan 2026 09:28:22 GMT
Server: Kestrel
Accept-Ranges: bytes
ETag: "1d9cc248668147e"
Last-Modified: Fri, 11 Aug 2023 07:22:03 GMT
X-Content-Type-Options: nosniff
X-XSS-Protection: 1
Page title: Visius. Личный кабинет
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Личный кабинет Visius"/><link rel="apple-touch-icon" href="/logo192.png"/><link rel="manifest" href="/manifest.json"/><link rel="preconnect" href="https://fonts.gstatic.com"><link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700&family=Rubik:wght@400;500;700&display=swap" rel="stylesheet"><title>Visius. Личный кабинет</title><style>body,html{height:100%}#root{min-height:100%;display:flex;flex-direction:column}</style><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElement(a);r.async=!0,r.src="https://www.googletagmanager.com/gtm.js?id=GTM-KSSNG6Z",m.parentNode.insertBefore(r,m)}(window,document,"script","dataLayer")</script><link href="/static/css/2.a7d492da.chunk.css" rel="stylesheet"><link href="/static/css/main.493f5306.chunk.css" rel="stylesheet"></head><body><noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-KSSNG6Z" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(e){function r(r){for(var n,i,l=r[0],a=r[1],p=r[2],c=0,s=[];c<l.length;c++)i=l[c],Object.prototype.hasOwnProperty.call(o,i)&&o[i]&&s.push(o[i][0]),o[i]=0;for(n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n]);for(f&&f(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,l=1;l<t.length;l++){var a=t[l];0!==o[a]&&(n=!1)}n&&(u.splice(r--,1),e=i(i.s=t[0]))}return e}var n={},o={1:0},u=[];function i(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,i),t.l=!0,t.exports}i.m=e,i.c=n,i.d=function(e,r,t){i.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,r){if(1&r&&(e=i(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(i.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)i.d(t,n,function(r){return e[r]}.bind(null,n));return t},i.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(r,"a",r),r},i.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},i.p="/";var l=this["webpackJsonpvisius-spa"]=this["webpackJsonpvisius-spa"]||[],a=l.push.bind(l);l.push=r,l=l.slice();for(var p=0;p<l.length;p++)r(l[p]);var f=a;t()}([])</script><script src="/static/js/2.45339199.chunk.js"></script><script src="/static/js/main.25f19c63.chunk.js"></script></body></html>
Open service 13.74.252.44:80 · app.visius.ai
2026-01-11 09:27
HTTP/1.1 200 OK
Content-Length: 3070
Connection: close
Content-Type: text/html
Date: Sun, 11 Jan 2026 09:28:22 GMT
Server: Kestrel
Accept-Ranges: bytes
ETag: "1d9cc248668147e"
Last-Modified: Fri, 11 Aug 2023 07:22:03 GMT
X-Content-Type-Options: nosniff
X-XSS-Protection: 1
Page title: Visius. Личный кабинет
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Личный кабинет Visius"/><link rel="apple-touch-icon" href="/logo192.png"/><link rel="manifest" href="/manifest.json"/><link rel="preconnect" href="https://fonts.gstatic.com"><link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700&family=Rubik:wght@400;500;700&display=swap" rel="stylesheet"><title>Visius. Личный кабинет</title><style>body,html{height:100%}#root{min-height:100%;display:flex;flex-direction:column}</style><script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElement(a);r.async=!0,r.src="https://www.googletagmanager.com/gtm.js?id=GTM-KSSNG6Z",m.parentNode.insertBefore(r,m)}(window,document,"script","dataLayer")</script><link href="/static/css/2.a7d492da.chunk.css" rel="stylesheet"><link href="/static/css/main.493f5306.chunk.css" rel="stylesheet"></head><body><noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-KSSNG6Z" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(e){function r(r){for(var n,i,l=r[0],a=r[1],p=r[2],c=0,s=[];c<l.length;c++)i=l[c],Object.prototype.hasOwnProperty.call(o,i)&&o[i]&&s.push(o[i][0]),o[i]=0;for(n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n]);for(f&&f(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,l=1;l<t.length;l++){var a=t[l];0!==o[a]&&(n=!1)}n&&(u.splice(r--,1),e=i(i.s=t[0]))}return e}var n={},o={1:0},u=[];function i(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,i),t.l=!0,t.exports}i.m=e,i.c=n,i.d=function(e,r,t){i.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,r){if(1&r&&(e=i(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(i.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)i.d(t,n,function(r){return e[r]}.bind(null,n));return t},i.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(r,"a",r),r},i.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},i.p="/";var l=this["webpackJsonpvisius-spa"]=this["webpackJsonpvisius-spa"]||[],a=l.push.bind(l);l.push=r,l=l.slice();for(var p=0;p<l.length;p++)r(l[p]);var f=a;t()}([])</script><script src="/static/js/2.45339199.chunk.js"></script><script src="/static/js/main.25f19c63.chunk.js"></script></body></html>