해당 취약점은 스프링에서 발생하는 취약점이다.
대충 어떤 취약점이냐면 Authorization Bypass in RegexRequestMatcher 인데, 대충 해석해보면 RegexRequestMatcher 에서
어떤 특별한 페이로드 삽입을 통해 Authorization를 우회한다는 내용인것같다.
좀 더 자세히 살펴보자.
머 CVSS 점수가 몇 점이고 뭐 그런거는 구글에 CVE 번호만 검색해도 수두룩하게 나온다.
https://nvd.nist.gov/vuln/detail/CVE-2022-22978
NVD - CVE-2022-22978
References to Advisories, Solutions, and Tools By selecting these links, you will be leaving NIST webspace. We have provided these links to other web sites because they may have information that would be of interest to you. No inferences should be drawn on
nvd.nist.gov
우리는 해당 취약점의 실제 공격 Payload 가 어떻게 되는지 보자.
취약점은 Spring Security 5.5.6 ~ 5.5.7 / older unsupported versions 에서 영향을 받는다고 한다.
우선 해당 버전을 가지고 있는 Spring을 설치하고 아래와 같이 Spring Security 세팅을 해준다
그리고 /vulnerable/.* 에 대해 접속하면 위의 세팅을 통해 인가받은 사용자인지 확인 후 아래의 라우팅 경로로 보낼 것이다.
실제로 해당 앱을 실핼 후 /vulneravle/Test 에 접속 시 아래와 같은 에러 화면을 볼 수 있다.
이제 여기서 오늘의 Payload가 등장한다. 바로 권한이 필요한 페이지 앞에%0a를 삽입하는 것이다. (매우간단);;
%0a 는 개행문자의 URL 인코딩 형태이다. 블로그에 따르면 %0d 도 가능하다고한다.
이런 우회가 가능한 이유는 RegexRequestMatcher 에서 사용하는 Pattern Class 에서 줄바꿈 문자에 대한 처리가 덜 되어서 그런거 같은데;;; 좀 더 자세한건 아래 블로그에서 확인이 가능하지만 중국어라서 읽는게 더어렵다;;
'Technical Docs > Web Application' 카테고리의 다른 글
DOM Invader (Burp Suite) (0) | 2022.06.23 |
---|---|
CVE-2022-26134 Confluence 취약점 (내용추가) (0) | 2022.06.03 |
Source Map 이 뭘까요~ (0) | 2022.06.01 |
Log4j JNDI Injection 부분 간단정리 ? (0) | 2022.02.12 |
Log4j 취약점 CVE-2021-44228 (Remote Code Injection) (0) | 2021.12.20 |