[하루한줄] CVE-2020-24550 : Open redirect in Episerver Find

URL

cve-2020-24550

Target

Episerver Find < 13.2.6

Explain

Episerver Find는 컨텐츠 관리, e-commerce, 자동 마케팅 등의 기능이 포함된 검색엔진 플랫폼입니다. Episerver Find 13.2.6 이전 버전에서 발생하는 Open redirect 취약점(CVE-2020-24550)의 세부 정보가 공개되었습니다.

Episerver Find는 _t_redirect 파라미터로 untrusted input을 redirect 함수에 전달합니다. 따라서 해커는 해당 파라미터를 통해 사용자를 임의의 URL로 redirect 할 수 있습니다.

[HttpGet]
public HttpResponseMessage Index(
[FromUri(Name = "_t_id")] string id,
[FromUri(Name = "_t_q")] string query,
[FromUri(Name = "_t_hit.id")] string hitId,
[FromUri(Name = "_t_redirect")] string redirect
[FromUri(Name = "_t_hit.pos")] int? hitPos = null,
[FromUri(Name = "_t_tags")] string tags = ""
)
{
  this.PostTrackData(id, query, hitId, hitPos, tags);
  HttpResponseMessage response = HttpRequestMessageExtentions.CreateResponse(this.get_Request(), HttpStatusCode.MovedPermanently);
  response.Headers.Location = new Uri(redirect);
  return response;
}

EPiServer.Find.UI.Controllers.ClickController.Index() 메소드의 코드입니다. _t_redirect파라미터의 값이 Location header인 301 redirect reponse를 리턴합니다.

PoC

http://{vulnerable}/find_v2/_click?_t_id=&_t_q=&_t_hit.id=&_t_redirect=https:/hackyboiz.github.io