HTTP by itself is a stateless protocol. Therefore the server is unable to determine which requests are performed by which client, and which clients are authenticated or unauthenticated.

The use of HTTP cookies within the headers, allows a web server to identify each individual client and can therefore determine which clients hold valid authentication, from those that do not. These are known as session cookies.

When a cookie is set by the server (sent the header of an HTTP response) there are several flags that can be set to configure the properties of the cookie and how it is to be handled by the browser.

The HttpOnly flag assists in the prevention of client side-scripts (such as JavaScript) accessing and using the cookie.

This can help prevent XSS attacks targeting the cookies holding the client’s session token (setting the HttpOnly flag does not prevent, nor safeguard against XSS vulnerabilities themselves).

Vector typeHTTP methodAction
  cookie GET https://wallet-test.eyesprotocol.io/

'보안 > 취약점' 카테고리의 다른 글

HTML object  (0) 2022.04.26
Allowed HTTP methods  (0) 2022.04.22
Insecure cookie  (0) 2022.04.22
Private IP address disclosure  (0) 2022.04.22
Missing 'X-Frame-Options' header  (0) 2022.04.22

Logs the existence of HTML object tags. Since Arachni can’t execute things like Java Applets and Flash this serves as a heads-up to the penetration tester to review the objects in question using a different method.

Vector typeHTTP methodAction
  body GET https://wallet-test.eyesprotocol.io/user-guide/

 

'보안 > 취약점' 카테고리의 다른 글

HttpOnly cookie  (0) 2022.04.26
Allowed HTTP methods  (0) 2022.04.22
Insecure cookie  (0) 2022.04.22
Private IP address disclosure  (0) 2022.04.22
Missing 'X-Frame-Options' header  (0) 2022.04.22

웹 서버에서 사용할 수 있는 HTTP 메서드는 여러 가지가 있습니다(OPTIONS, HEAD, GET, POST, PUT, DELETE 등). 이러한 방법은 각각 다른 기능을 수행하며 웹 서버에서 사용이 허용될 때 관련 위험 수준이 있습니다.

클라이언트는 요청 내에서 OPTIONS 메서드를 사용하여 서버에 쿼리하여 허용되는 메서드를 결정할 수 있습니다.

 

[공격피해]

사이버 범죄자는 서버에서 허용하는 고위험 방법을 매우 빠르게 표시하므로 이 간단한 테스트를 거의 항상 수행합니다.

'보안 > 취약점' 카테고리의 다른 글

HttpOnly cookie  (0) 2022.04.26
HTML object  (0) 2022.04.26
Insecure cookie  (0) 2022.04.22
Private IP address disclosure  (0) 2022.04.22
Missing 'X-Frame-Options' header  (0) 2022.04.22

HTTP는 그 자체로 상태 비저장 프로토콜입니다. 따라서 서버는 어떤 클라이언트가 어떤 요청을 수행하는지, 어떤 클라이언트가 인증되었는지 또는 인증되지 않았는지 확인할 수 없습니다.
헤더 내에서 HTTP 쿠키를 사용하면 웹 서버가 각 개별 클라이언트를 식별할 수 있으므로 유효한 인증을 보유한 클라이언트와 그렇지 않은 클라이언트를 결정할 수 있습니다. 이를 세션 쿠키라고 합니다.

쿠키가 서버에 의해 설정되면(HTTP 응답의 헤더가 전송됨) 쿠키의 속성과 브라우저에서 쿠키를 처리하는 방법을 구성하기 위해 설정할 수 있는 몇 가지 플래그가 있습니다.
이러한 플래그 중 하나를 보안 플래그라고 합니다. 보안 플래그가 설정되면 브라우저는 일반 텍스트 채널(HTTP)을 통해 전송되는 것을 방지하고 암호화된 채널(HTTPS)이 사용될 때만 전송되도록 허용합니다.

'보안 > 취약점' 카테고리의 다른 글

HTML object  (0) 2022.04.26
Allowed HTTP methods  (0) 2022.04.22
Private IP address disclosure  (0) 2022.04.22
Missing 'X-Frame-Options' header  (0) 2022.04.22
Spring 라이브러리 보안 취약점  (0) 2022.04.11

개인 또는 라우팅할 수 없는 IP 주소는 일반적으로 가정 또는 회사 네트워크 내에서 사용되며 일반적으로 해당 네트워크 외부의 누구에게도 알려지지 않습니다.

 

[공격피해]

사이버 범죄자는 피해자가 사용 중인 사설 IP 주소 범위를 식별하여 추가 정보 수집을 지원하여 잠재적인 손상으로 이어질 수 있습니다.

'보안 > 취약점' 카테고리의 다른 글

Allowed HTTP methods  (0) 2022.04.22
Insecure cookie  (0) 2022.04.22
Missing 'X-Frame-Options' header  (0) 2022.04.22
Spring 라이브러리 보안 취약점  (0) 2022.04.11
보안에 필요한 필수 헤더의 누락  (0) 2022.03.11

이 헤더는 사용자의 눈에 보이지 않는 영역을 추가하여 사용자는 의도한대로 버튼을 누르지만 실제로는 다른 곳을 클릭하게 만드는 Clickjacking을 방지 할 수 있는 옵션입니다. 페이지 내부에 심어질 수 있는 iframe과 같은 곳에 접근을 제어하는 옵션으로 설정 가능

X-Frame-Options : DENY (모든 표시를 거부)
X-Frame-Options : SAMEORIGIN (동일한 출처에 대한 것만 표시)
X--Frame-Options : ALLOW FROM http://www.aaa.com (http:www.aaa.com에 대해서만 허용)

'보안 > 취약점' 카테고리의 다른 글

Insecure cookie  (0) 2022.04.22
Private IP address disclosure  (0) 2022.04.22
Spring 라이브러리 보안 취약점  (0) 2022.04.11
보안에 필요한 필수 헤더의 누락  (0) 2022.03.11
Password field with auto-complete 취약점 설명  (0) 2022.03.10

Spring Cloud CVE-22963, Spring4Shell CVE-22965

 

웹 프레임워크에서 발견

가장 인기 높은 개발 프레임워크인 스프링(Spring)에서 제로데이 취약점이 발견

 

Spring Cloud Function (CVE-2022-22963)

대상: Spring Cloud Function 3.1.6v, 3.2.2v, 더 오래된 이전 버전도 영향 있음.

설명: 악성 Spring Expression에 의한 Spring Cloud Function의 원격 코드 실행

Spring Cloud Function 버전 3.1.6, 3.2.2 및 이전 지원되지 않는 버전에서 라우팅 기능을 사용할 때 사용자가 특수하게 조작된 SpEL (Spring Expression Language injection)을 라우팅 표현식으로 제공할 수 있어 원격 코드 실행 및 로컬 리소스 액세스가 발생할 수 있음.

 

Spring Cloud Function은 특정 런타임에서 비즈니스 로직을 분리할 수 있는 기술입니다. SpEL은(Spring Expression Language)은 Spring에서 사용하는 표현 방식으로 런타임에 개체 그래프 쿼리 및 작업을 수행할 때 주로 사용합니다.

 

=>이번 취약점은 SpEL 주입과 관련한 원격 코드의 실행을 애플리케이션이 신뢰할 수 없는 사용자 입력 코드 표현식을 사용하여 결과적으로 안전하지 않은 실행에 대한 CVE가 발견된 것.

 

Spring Cloud Functions는 Log4j 라이브러리만큼 널리 사용되지 않지만 보안 전문가들은 이 새로운 취약점으로 인해 많은 위협 행위자가 향후 몇 년 동안 암호화폐 채굴, 디도스, 랜섬웨어 캠페인을 시작할 것으로 예상.

 

조치 방안:

- Spring Cloud Function 3.1.7, 3.2.3으로 업그레이드

- WAF에서의 방어

 

Spring Framework RCE 취약점 (CVE-2022-22965), Spring4Shell in Spring Core

대상: JDK 9+에서 실행되는 Spring MVC 또는 Spring WebFlux 애플리케이션, 모든 버전의 Spring Core

설명: JDK 9+에서 데이터 바인딩을 통한 Spring Framework RCE

JDK 9++에서 실행되는 Spring MVC 또는 Spring WebFlux 애플리케이션은 데이터 바인딩을 통한 원격 코드 실행(RCE)에 취약할 수 있습니다. 특히 Tomcat에서 WAR 형태로 배포되는 경우입니다.

- Spring Boot 실행 가능한 jar, 즉 기본값으로 배포되는 경우 익스플로잇에 취약하지 않습니다

 

이것은 모든 Spring 프로젝트가 잠재적으로 영향을 박기 때문에 CVE-2022-22963보다 영향력이 클 것으로 예상됨.

 

취약점 대상:

- JDK 9+ 이상

- 서블릿 컨테이너로서의 Apache Tomcat 사용

- WAR로 패키징

- spring-webmvc 또는 spring-webflux 사용

 

대상 Spring framework 버전

- 5.3.0 ~ 5.3.17

- 5.2.0 ~ 5.2.19

 

조치방안:

- 5.3.18+ 상위 버전 업그레이드

- 5.2.20+ 상위 버전 업그레이드

- WAF에서의 방어

 

 

 

==> 테스트 시

최종적으로 사용할 Spring MVC는 DispatcherServlet을 시작으로 다양한 객체들이 상호작용하며 클라이언트의 요청을 처리한다.

 

1) Url을 분석해 적절한 컨트롤러를 찾아줌.

2) 컨트롤러에서 필요한 메소드를 불러줌

3) 컨트롤러의 결과 데이터를 뷰로 전달해줌

4) 적절한 뷰를 찾아줌

 

 

[참고 url]

https://blog.naver.com/witchcmo01/222688715410
https://blog.naver.com/vuswl6015/222691292691
https://blog.naver.com/sehyunfa/222688398555
https://blog.naver.com/shinequasar/222472441997
https://blog.naver.com/dlwodud978/222344845105
https://blog.naver.com/snowman0107/222349312313

 

제로데이 Spring4Shell 취약점 탐지와 대응

2022년 3 월 31일 Jeff Costlow Spring4Shell로 알려진 중요한 제로데이 취약점(CVE-2022-22965)이 ...

blog.naver.com

 

 

브라우저는 응답에 포함된 헤더를 통해 자체적으로 컨텐츠를 차단 또는 변경하는 기능이 구현되어 있음.

 

[설정의 종류 아래 정리]

1. Content-Security-Policy

2. X-Frame-Option

 이 헤더는 사용자의 눈에 보이지 않는 영역을 추가하여 사용자는 의도한대로 버튼을 누르지만 실제로는 다른 곳을 클

 릭하게 만드는 Clickjacking을 방지 할 수 있는 옵션입니다. 페이지 내부에 심어질 수 있는 iframe과 같은 곳에 접근을

 제어하는 옵션으로 설정 가능

 

 X-Frame-Options : DENY (모든 표시를 거부)

 X-Frame-Options : SAMEORIGIN (동일한 출처에 대한 것만 표시

 X--Frame-Options : ALLOW FROM http://www.aaa.com (http:www.aaa.com에 대해서만 허용)

 

 서버가 X-Frame-Options 헤더를 반환하지 않으면 이 웹사이트가 클릭재킹 공격의 위험에 처할 가능성 존재

 * Clickjacking(User Interface redress attack, UI redress attack, UI redressing)은 웹 사용자를 속여 사용자가 클릭하고

 있는 것과 다른 것을 클릭하도록 속여서 잠재적으로기밀 정보를 노출시키거나 컴퓨터를 제어하는 악의적인 기술. 무

 해해 보이는 웹 페이지를 클릭

 

3. X-Content-Type-Option

 

4. Strict-Transport-Security

이 헤더는 한번 https로 접속하는 경우 이후의 모든 요청을 http로 요청하더라도 브라우저가 자동으로 https로 요청합니다.

Strict-Transport-Security: max-age=31536000;includeSubDomains;preload

 

https로 전송한 요청을 중간자가 가로채어 내용을 볼 수 있는(MIMT)기법을 클라이언트 레벨(브라우저)에서 차단할 수 있습니다.

 

 

5. X-XSS-Protection

 

6. Cache-Control, Programa

 

 

 

참고자료 : https://cyberx.tistory.com/171

+ Recent posts