'전체 글'에 해당되는 글 587건

Web Assembly 시작

2020. 8. 9. 23:03

https://d2.naver.com/helloworld/8786166

 

진행 중

 

  • WebAssembly Studio: 온라인 IDE(integrated development environment)를 사용해 C와 Rust, AssemblyScript 등으로 WebAssembly 코드를 작성해 볼 수 있는 플레이그라운드 사이트이다.
  • Extending the browser with WebAssembly: Alliance for Open Media AV1 비디오 코덱의 소스 코드를 감싸는 래퍼(wrapper)를 빌드해 브라우저에서 코덱을 실행할 수 있게 하는 과정을 소개하는 글이다.
  • Emscripten and npm: 일반적인 웹 애플리케이션 프로젝트에 WebAssembly 모듈을 통합하기 위해 준비해야 하는 설정을 설명하는 글이다.

 

https://www.hahwul.com/2018/10/06/hacking-security-analysis-web-assembly/

 

Hacking & Security Analysis Web Assembly(웹 어셈블리 해킹/보안분석)

Security engineer, Bugbounty hunter, Developer and... H4cker

www.hahwul.com

https://www.wasm.com.cn/demo/Tanks/

 

Unity WebGL Player | Tanks!

 

www.wasm.com.cn


https://i.blackhat.com/us-18/Thu-August-9/us-18-Lukasiewicz-WebAssembly-A-New-World-of-Native_Exploits-On-The-Web-wp.pdf

 

 

https://github.com/WebAssembly/wabt/tree/master/wasm2c

 

WebAssembly/wabt

The WebAssembly Binary Toolkit. Contribute to WebAssembly/wabt development by creating an account on GitHub.

github.com

웹어셈블리를 C언어로 변환해주는 툴

 

 

wasm2c test.wasm -o test.c 커맨드를 실행하면 test.c과 헤더 파일인 test.h가 발생

사실 test.c 자체도 문법적 오류가 없지만 (!), 웹어셈블리에서 import가 존재하는 경우 링커에서 unresolved reference 에러가 나게 됩니다.

해결법은 다행히 간단한데, 헤더에 있는 선언들이 공간을 갖도록 해주면 됩니다.

sed -i 's/^extern //g' test.h 그리고, 컴파일을 해줍니다. 단 C 생성을 위해 쓰인 여러 런타임 함수들이 구현되어있는 wasm2c/wasm-rt-impl.c 파일도 같이 컴파일해줍니다.

gcc test.c /wasm-rt-impl.c -o test --shared -fPIC 이러면 이제 디컴파일이 가능한 ELF 파일이 나옵니다, 웹어셈블리는 개발자 도구를 통해 디버깅 할 수 있습니다.

 

'' 카테고리의 다른 글

CORS (Cross Origin Resource Sharing)  (0) 2020.08.11
DNS Rebinding 을 이용한 우회  (0) 2020.08.10
Oauth 개념과 원리  (0) 2020.08.09
SSRF Types And Ways To Exploit It (Part-1)  (0) 2020.08.09
JSP SQL 인젝션 대응방안  (0) 2020.08.08
블로그 이미지

wtdsoul

,

POODLE Attack

CVE 2020. 8. 9. 19:15

https://twoicefish-secu.tistory.com/116

 

POODLE(CVE-2014-3566) 취약점 분석 보고서

POODLE ATTACK POODLE(padding oracle on downgraded legacy encryption)의 약자다. 구글 SSL3.0을 TLS3.0으로 낮추어 암호문 추측하는 공격이다. SSL3.0에서 이루어지는 공격이다. 해당 프로토..

twoicefish-secu.tistory.com

https://blog.trendmicro.com/trendlabs-security-intelligence/poodle-vulnerability-puts-online-transactions-at-risk/

 

POODLE Vulnerability Puts Online Transactions At Risk - TrendLabs Security Intelligence Blog

Earlier today, Google researchers Bodo Möller, Thai Duong, and Krzysztof Kotowicz released a paper discussing a serious bug in SSL 3.0 that allows attackers to conduct man-in-the-middle attacks and decrypt the traffic between Web servers and end users. F

blog.trendmicro.com

 

 

POODLE ATTACK
POODLE(padding oracle on downgraded legacy encryption)의 약자다. 구글
SSL3.0을 TLS3.0으로 낮추어 암호문 추측하는 공격이다.
SSL3.0에서 이루어지는 공격이다. 해당 프로토콜은 오래되고 안전하지 않다. 공격자들은 웹사이트에서 쓰이는 인증쿠키를 해독할 수 문제점이 있다.
취약점을 발현시키기 위하여 공격자들은 다음과같은 사항을 따라야한다.

 

 

'CVE' 카테고리의 다른 글

Bitcoin Remote Dos CVE 2018  (0) 2020.09.06
Word press plugin 0day  (0) 2020.09.06
CVE-2020-0796-RCE-POC  (0) 2020.07.14
CVE-2019-8805 - A macOS Catalina privilege escalation  (0) 2019.12.10
CVE-2019-2890  (0) 2019.12.10
블로그 이미지

wtdsoul

,

Oauth 개념과 원리

2020. 8. 9. 18:28

 

https://interconnection.tistory.com/76

 

OAuth의 개념과 원리

DB의 종류를 바꾸어서 마이그레이션을 하는 과정에서 하나 발견한 JSON token을 발견했습니다. FaceBook에서 사용하는 Token인데, 여기서 OAuth를 사용을 하는데 정확히 원리와 개념에 대해서 몰랐습니��

interconnection.tistory.com

다시 한번 더

 

 

 

OAuth 란?

 

"웹, 앱 서비스에서 제한적으로 권한을 요청해 사용 할 수 있는 키를 발급해주는 것입니다."

 

사용하는 이유는 엄청나게 많은 각 서비스별 ID와 Password를 다 기억하고 로그인시 입력을 해야하는 경우가 생깁니다.

 

그런데 이 OAuth API를 사용하는 사이트는 그렇지 않습니다. 제한된 설정으로 연결하여 인증하면 그만이죠.

 

다음은 그 예입니다.

 

 

 

예를 한번 들어보겠습니다.

 

그런데 당황스럽게도 이 예에서 본인의 소득수준에 따라서 이해도가 달라지네요.

 

저도 이 개념을 공부하면서 처음 알게된 부분인데요.

 

자동차에는 발렛키라는게 있다고 합니다. 중저가의 차만 타본 저는 잘 이해가 안가지만,

 

이 발렛키는 사용할 수 있는 권한이 제한적입니다.

 

차량을 발렛을 하는 사람으로 가장해서 탈취하려는 시도를 막기 위해서,

 

트렁크를 열 수 없고, 주행거리는 1km이하로 주행되고 그 이상은 안된다고 합니다.

 

 

발렛키의 예에서 보는 것처럼 어떤 제한적으로 인증을 해서 사용이 가능하게끔 하는 역할을 하는 것이 OAuth입니다.

 

OAuth를 이용하면 특정 기능과 리소스에 접근 할 수 있는 인증 토큰(Access Token = 발렛키)를 발급 받을 수 있습니다.

 

인증 토큰으로 서비스로 접근하는데에 사용을 합니다.

 

 

OAuth의 원리와 과정

 

1) Resource Owner(사용자)

 

2) Authorization Server(인증 서버)

 

3) Resource Server(REST API)

 

4) Client

 

이렇게 OAuth가 네 가지의 구성으로 이루어집니다.

 

 

OAuth를 이용해서 권한을 획득하는 방법은 굉장히 다양합니다.

 

다음과 같이 크게 네 가지의 방법이 있습니다. 이 부분은 그냥 참고만 하고 넘어가시면 됩니다.

 

지금 이야기를 하려고 하는 것은 이러한 세부적인 이야기는 아니고 어떤 방식으로 돌아가는지 전체적인 부분만 보려고 합니다.

 

 

이제 OAuth를 사용해서 구성들이 어떠한 방식으로 작동하는 지에 대해서 이야기를 해보겠습니다.

 

위에서 언급했지만 다음 네가지의 구성이 있습니다.

1) Resource Owner(DB를 장악하고 있는 OAuth를 사용하는 사람)

 

2) Authorization Server(OAuth 인증 서버)

 

3) Resource Server(REST API Server)

 

4) Client(Resource를 사용하는 직접 사용자)

 

네가지 구성 중에 중요한 것은 Client와 Resource Owner입니다.

 

나머지는 그 둘 간의 보안과 사용의 제한을 걸어주는 OAuth를 위한 요소들이 뿐입니다.

 

 

이제 작동 원리에 대해서 잘근잘근? 이야기 해보겠습니다.

 

쉽게 이야기를 해보기 위해서 OAuth 2.0 인증방식을 가지는 FaceBook을 기준으로 설명을 해보겠습니다.

 

* 설명에 앞서 간단하게  Client는 본인, Resource Owner, Authorization Server, Resource Server는 Facebook 서버라고 생각합니다.

 

1) Client가 어떤 사이트를 이용해보려고 하는데 아이디를 FaceBook으로 가입할 수 있다는 버튼을 발견합니다.

 

2) 버튼을 누르면 Facebook을 로그인 창이 나옵니다. 로그인을 합니다. (이 부분이 (A), (B) 과정입니다.)

 

3) 로그인을 하고 나면 서버에서 승인을 받아서 (B)단계가 지났다고 생각하면 됩니다.

 

4) 그리고 로그인 후에, 해당사이트의 접근을 허용 할 것인가? 확인 창이 나타나게됩니다.

 

5) 허용을 하게 되면 해당 사이트에서 로그인 목적으로 사용할 수 있는 Access Token을 받게 됩니다.( (C), (D)과정입니다.)

 

6) 실제로 보면 facebook의 Access token은 다음과 같이 던져줍니다.

{

"facebook":

{

"access_token":"EAAXCfLMud8M*",

"expiration_date":"2017-01-02T07:43:09.000Z",

"id":"15037283890"

}

}

여기서 부터가 바로 발급받은 Access Token을 이용해서 서비스를 사용하는 과정( (E), (F) )입니다.

 

7) 이제 Access Token의 id를 가지고 access_token으로 서버의 제한된 resource(DB와 같은)을 expiration_date까지 사용할 수 있습니다.

 

이 과정이 끝입니다.

 

즉, 쉽게 이야기 하면, Facebook에게 토큰 사용요청을 해서 토큰을 받아서, 토큰을 가지고 서버에 요청하여 제한된 허용으로 사용합니다. 

 

현재 많은 서비스들이 이 OAuth을 사용하고 있습니다. 그래서 사용자들의 편의를 돕고 있습니다.

 

어플리케이션에도 사용자를 쉽게 유치할 수 있습니다. 권장합니다.

 

이상 간단한 OAuth의 개념과 원리에 대해서 정리를 마치겠습니다.




'' 카테고리의 다른 글

DNS Rebinding 을 이용한 우회  (0) 2020.08.10
Web Assembly 시작  (0) 2020.08.09
SSRF Types And Ways To Exploit It (Part-1)  (0) 2020.08.09
JSP SQL 인젝션 대응방안  (0) 2020.08.08
Secure & HttpOnly 설정  (0) 2020.08.08
블로그 이미지

wtdsoul

,