패킷 포워딩을 통해 SSL이 적용된 패킷 확인을 위해 사용합니다.

 

#들어오는 패킷 다시 쓰기

iptables -t nat -A PREROUTING -p tcp -j DNAT --to ${IP:Port}

ex) iptables -t nat -A PREROUTING -p tcp -j DNAT --to 127.0.0.1:8080

# 나가는 패킷 다시 쓰기

iptables -t nat -A OUTPUT -p tcp -j DNAT --to ${IP:Port}

ex) ex) iptables -t nat -A OUTPUT -p tcp -j DNAT --to 127.0.0.1:8080

 

Chain은 PREROUTING, INPUT, OUTPUT, POSTROUTING이 존재하고 각각 역할은 다음과 같습니다.

 

PREROUTING 

라우팅이 결정되기 전 체인에 존재하는 룰 적용

 

INPUT

자신의 호스트를 목적지로 들어오는 패킷에 대해 체인에 존재하는 룰 적용

 

OUTPUT

자신의 호스트에서 외부로 나가는 패킷에 대해 체인에 존재하는 룰 적용

 

POSTROUTING

라우팅이 결정되고 난 후, 체인에 존재하는 룰 적용

 

iptables를 적용하고 난 후, burp에서도 다음 설정을 해줘야 ssl이 적용된 패킷을 확인할 수 있습니다.

 

[Proxy] - [Options] - [Proxy Listeners] - [Edit] - [Request handling] - [Support invisible proxying(enable only if needed)]

아래 빨간 박스의 옵션을 체크해주셔야 합니다!

출처 : webterror.net/?p=1622

'NetWork' 카테고리의 다른 글

Python 패킷 캡쳐(with. pypcap)  (1) 2021.03.10
RTP (Realtime Transport Protocol)  (0) 2013.03.04
VMware network  (0) 2012.07.10
tcphdr , tcphdr??  (0) 2012.07.09
ARP_Spoofing  (2) 2012.07.06

OAuth?

OAuth는 제 3의 앱이 자원의 소유자인 서비스 이용자를 대신하여 서비스를 요청할 수 있도록 자원 접근 권한을 위임하는 방법을 말합니다.

쉽게 말하면, 특정 사이트에서 [카카오톡으로 로그인하기], [페이스북으로 로그인하기] 등 타 사이트를 이용해 로그인하는 방법을 자주 접할 수 있는데 타 사이트의 계정에 접근하기 위한 권한을 제어하는 표준 프로토콜을 의미합니다.

 

OAuth를 통해 로그인할 경우 카카오톡이나 페이스북이 아닌 제 3의 사이트는 카카오톡, 페이스북의 계정 정보를 요구할 필요가 없이 Access Token을 통해 접근하므로 사용자 입장에서도 계정 정보가 유출될 위험이 낮아집니다.

 

OAuth의 인증 프로세스는 다음과 같습니다.

payco oauth2.0

OAuth 2.0의 보안 취약점 (CSRF, Convert Redirect) 

 

1) CSRF를 통한 계정 탈취

OAuth를 통해 계정 연동을 진행할 경우 다음과 같은 다음과 유사한 프로세스를 거치게 됩니다.

 

1. 기존 계정과 SNS 계정 연동 요청
2. 요청 SNS 로그인 페이지 출력 (Client ID 값이 포함된 로그인 페이지)
3. ID/PW 를 통해 SNS 계정에 로그인
4. 로그인 성공 시 인증 서버로부터 Authorization code를 발급 받음 (Authentication Server -> 사용자)
5. 발급 받은 code 값과 state 값을 Client 서버로 전송 (사용자 -> Client Server) 6. code 값과 state 값 검증 후 Client 서버에 로그인 되어있는 계정과 SNS 계정이 연동됨

 

이 때 state값은 CSRF token과 같은 역할을 하기 때문에 검증이 미흡할 경우 CSRF 공격을 통해 공격자의 계정으로 연동하는 등의 악의적인 행위가 발생할 수 있습니다. (공격자 SNS 계정으로 접속할 경우 피해자의 계정으로 로그인)

 

대응 방안

state값은 CSRF token과 동일한 역할을 수행하므로, 요청받은 state에 대해 검증을 수행해야 하고 토큰의 유출 및 악용 방지를 위해 유효기간을 짧게 혹은 일회용으로 설정합니다. 

 

 

2) Convert Redirect

앞서 OAuth2.0 인증 프로세스 중, 6. Redirect URL을 통해 로그인 성공 후 리다이렉션 되는 URL을 명시합니다.

따라서 Redirect URL에 대한 검증이 누락되면 해당 값 변조를 통해 임의의 사이트로 리다이렉션되어 계정 탈취와 같은 피해가 발생할 수 있습니다.

 

아래는 네이버 OAuth 요청 가이드 중 일부입니다.

naver oauth 요청 가이드

 

대응 방안

redirect_uri 파라미터에 대해 full path검증을 수행하여 의도하지 않은 페이지로 리다이렉션 되지 않도록 조치함

 

OAuth관련 공부하다가 재미난 자료가 있어 링크 삽입합니다.

간략한 내용은

1. redirect_url에 대해 자사 도메인인 경우 허용(full path 검증 x)

2. 자사 도메인 중, logout 페이지에서 로그아웃 후 referer 헤더값을 참조해 리다이렉션

3. logout 페이지 요청 시 referer에 공격자의 사이트로 접근 유도

www.hahwul.com/2019/06/28/oauth-chained-bugs-to-leak-oauth-token/

 

OAuth 과정에서 발생할 수 있는 재미있는 인증토큰 탈취 취약점(Chained Bugs to Leak Oauth Token) Review

Security engineer, Developer and H4cker

www.hahwul.com

 

[출처]

meetup.toast.com/posts/105

berrrrr.github.io/programming/2019/11/03/oauth2-vulnerability/

www.hahwul.com/2019/06/28/oauth-chained-bugs-to-leak-oauth-token/

금융보안원 OAuth2.0 개요 및 보안 고려사항.pdf

'Web' 카테고리의 다른 글

Same site (Cookie)  (0) 2021.03.29
marquee onstart xss & XSS 기법  (0) 2019.05.10
주요 Editor 샘플페이지 및 취약점 발생경로  (4) 2018.12.03
xp_cmdshell 활성화 쿼리  (1) 2018.10.01
MSSQL Limit 기능 구현  (0) 2018.10.01

SameSite?

웹사이트에서는 일반적으로 광고, 콘텐츠 추천, 서드 파티 위젯, 소셜 임베드 및 다른 기능을 위한 외부 서비스를 통합합니다. 웹을 탐색할 때 이러한 외부 서비스가 브라우저에 쿠키를 저장한 후 개인화된 환경을 제공하거나 고객 참여도를 측정하기 위해 해당 쿠키에 접근할 수 있도록 합니다.

SameSite는 브라우저가 사이트간 요청을 통해 쿠키를 보내지 못하게 하여 정보 유출, CSRF 공격에 대해 보호하기 위해 사용합니다.

HTTP/1.1 302 Found
Location: https://www.google.com/?gws_rd=ssl
Cache-Control: private
Content-Type: text/html; charset=UTF-8
Date: Tue, 30 Mar 2021 04:11:55 GMT
Server: gws
Content-Length: 231
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN
Set-Cookie: 1P_JAR=2021-03-30-04; expires=Thu, 29-Apr-2021 04:11:55 GMT; path=/; domain=.google.com; Secure; SameSite=none
Connection: close

<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>302 Moved</TITLE></HEAD><BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF="https://www.google.com/?gws_rd=ssl">here</A>.
</BODY></HTML>

google cookie

 

SameSite는 3가지 속성을 가지고 있으며, 각 속성별 의미는 다음과 같습니다.

 

SameSite=Strict 

서로 다른 도메인에 대해서 쿠키 전송 불가

 

SameSite=Lax

일부 예외를 제외하고 쿠키 전송 불가

 

SameSite=None; Secure;
서로 다른 도메인 및 동일 도메인 모두 쿠키 전송 가능

samesite=none으로 설정한 경우, secure 속성을 필수적으로 넣어줘야 함

 

※ Secure 

HTTPS 프로토콜에서만 쿠키가 전송되도록 설정함

 

SameSite 속성을 통해 CSRF를 차단할 수 있지만 필요한 다른 사이트로의 이동(ex. 소셜미디어 등)도 차단할 수 있어 사이트별 상황에 맞도록 사용해야합니다.

 

요청 타입별 쿠키 전송 여부

 

[출처]

jinn-blog.tistory.com/97

developers-kr.googleblog.com/2020/01/developers-get-ready-for-new.html

ifuwanna.tistory.com/223

 

'Web' 카테고리의 다른 글

OAuth 2.0  (1) 2021.03.31
marquee onstart xss & XSS 기법  (0) 2019.05.10
주요 Editor 샘플페이지 및 취약점 발생경로  (4) 2018.12.03
xp_cmdshell 활성화 쿼리  (1) 2018.10.01
MSSQL Limit 기능 구현  (0) 2018.10.01

+ Recent posts