Web9: XSS 공격 유형 - 3부: Dom 기반 XSS

Web9: XSS 공격 유형 - 3부: Dom 기반 XSS

우리는 이미 두 가지 유형의 XSS 익스플로잇을 언급했습니다 : Reflection과 Stored.모두 위험한 코드가 삽입된 후 서버의 응답 후에 실행된다는 공통된 특징을 가지고 있습니다. 즉, 오류는 서버 측에 있다는 것을 의미합니다. 이 기능에 반대되는 또 다른 유형의 XSS 공격이 있습니다. DOM 기반 XSS 또는 유형 0 XSS라고도 알려진 서버를 통하지 않고 클라이언트 측에서 악성 코드가 즉시 실행됩니다.

먼저 DOM이 무엇인지 알아야 합니다.

Document Object Model의 약자인 DOM은 HTML, XML 등 구조화된 문서의 데이터를 검색하고 조작하기 위해 제안된 W3C(http://www.w3.org/DOM/)의 표준 형식입니다. 이 모델은 문서를 계층적 트리 구조로 나타냅니다. HTML과 XML의 모든 요소는 노드로 간주됩니다.

DOM 기반 XSS는 문서, 특히 HTML의 DOM 구조 변경을 기반으로 하는 XSS 활용 기술입니다.

아래의 구체적인 예를 살펴보겠습니다.

웹사이트에는 등록 페이지에 대한 다음 URL이 있습니다.

example.com/register.php?message=Please fill in the form

액세스하면 매우 일반적인 양식이 표시됩니다.

Web9: XSS 공격 유형 - 3부: Dom 기반 XSS

양식의 알림 콘텐츠에 전달된 메시지 매개변수를 쉽게 추론할 수 있습니다. 이 알림의 소스 코드를 자세히 살펴보세요.

Web9: XSS 공격 유형 - 3부: Dom 기반 XSS

JavaScript 세그먼트는 메시지 매개변수에서 값을 가져와서 인쇄하는 역할을 담당합니다. 이러한 느슨한 입력 확인을 통해 사용자를 속여 위험한 URL에 액세스하도록 하는 것이 전적으로 가능합니다.

캐스팅하는 대신:

message=Please fill in the form

그런 다음 다음을 전송합니다.

message=GenderMaleFemale

function show(){alert();}

그러면 등록 양식은 다음과 같습니다.

Web9: XSS 공격 유형 - 3부: Dom 기반 XSS

사용자는 이와 같은 "일반적인" 형식을 의심하지 않으며 성별을 선택하면 스크립트가 실행됩니다.

Web9: XSS 공격 유형 - 3부: Dom 기반 XSS

message 매개변수에 전달된 값에 대해 조금 더 설명하겠습니다.

GenderMaleFemale

function show(){alert();}

주요 목적은 select 태그에 onchage 이벤트가 발생할 때마다 show() 함수를 실행하는 것입니다. 여기서 show() 함수는 단순히 스크립트가 실행되었음을 표시하기 위해 팝업됩니다. 그러나 실제로 해커는 사용자 쿠키 값을 미리 결정된 서버로 전송하는 스크립트를 실행하기 위해 이 show() 함수를 사용하는 경우가 많습니다. 독자는 해커가 어떻게 이 요청을 생성하는지 언급하는 Reflected XSS 기사를 검토할 수 있습니다 .

이 예는 우리에게 두 가지 중요한 결론을 제공합니다. 첫째, select 태그의 값을 클릭하는 즉시 악성코드가 실행되었다. 즉, 서버의 응답을 거치지 않고 클라이언트 측에서 바로 실행되었다는 의미이다. 둘째, 전달된 스크립트로 HTML 구조가 변경되었습니다. 또한 실제 악용 시나리오도 볼 수 있습니다. DOM 기반은 악성 코드가 포함된 URL에 액세스하도록 사용자를 속이는 측면에서 Stored XSS보다 Reflected와 다소 유사합니다.

다음 그림은 DOM 기반 XSS 공격 기술을 구현하는 각 단계를 설명합니다.

Web9: XSS 공격 유형 - 3부: Dom 기반 XSS

다음은 DOM 기반 XSS를 통해 익스플로잇을 수행하는 WhiteHat.vn 포럼 회원의 비디오입니다.

행운을 빌어요!


Windows 10에서 생산성을 높이는 10가지 팁

Windows 10에서 생산성을 높이는 10가지 팁

Windows 10은 사용자가 쉽게 응용 프로그램을 구성하고 멀티태스킹을 수행하는 데 도움이 되는 다양한 기능을 제공합니다.

Kaspersky Free Antivirus를 영어 인터페이스로 전환하는 방법

Kaspersky Free Antivirus를 영어 인터페이스로 전환하는 방법

이전 기사에서는 Kaspersky 안티 바이러스 소프트웨어 무료 버전을 설치하고 활성화하는 방법을 설명했습니다. 다만, 러시아와 우크라이나에만 출시된 버전이기 때문에 사용하는 언어도 러시아어로 되어 있어서 사용하기가 어렵습니다.

Windows 10에 설치된 테마를 삭제하는 3가지 방법

Windows 10에 설치된 테마를 삭제하는 3가지 방법

Windows 10 컴퓨터에 여러 테마가 설치되어 있고 다운로드하려는 새 테마를 위한 공간을 확보하기 위해 더 이상 사용하지 않는 테마를 삭제하려고 합니다. 아래 문서에서 LuckyTemplates는 Windows 10 컴퓨터에 설치한 테마 또는 테마 패키지를 보고 삭제하는 3가지 방법을 안내합니다.

Windows 10에서 업데이트 다시 시작 알림 활성화

Windows 10에서 업데이트 다시 시작 알림 활성화

Windows 10에서는 업데이트 다시 시작 알림 기능을 활성화할 수 있습니다. 다시 시작 알림 업데이트 기능이 활성화되면 운영 체제는 다시 시작 시간 알림을 저장합니다. 알림이 더 자주 표시되므로 운영 체제가 다시 시작되는 시간을 잊지 않을 것입니다.

Windows 10 1주년 업데이트 후 메모리 공간 확보

Windows 10 1주년 업데이트 후 메모리 공간 확보

Windows 10 버전을 Windows 10 1주년 업데이트(버전 1607)로 업그레이드하면 Windows 10에서는 사용자가 제거할 수 있도록 이전 Windows 10 버전의 백업을 Windows.old라는 폴더에 자동으로 생성합니다. 이전 버전의 Windows 10.

802.11b 장치가 WiFi 네트워크 속도를 저하시키는 이유는 무엇입니까?

802.11b 장치가 WiFi 네트워크 속도를 저하시키는 이유는 무엇입니까?

즉, Wi-Fi 속도는 Wi-Fi 위치부터 집에 있는 전자레인지에 이르기까지 다양한 요인에 따라 달라집니다. 하지만 네트워크에서 802.11b 프로토콜을 실행하는 오래된 장치로 인해 속도가 느려질 수 있습니까?

Windows 10에서 최신 대기 모드가 연결되었거나 연결 해제되었는지 확인하는 방법

Windows 10에서 최신 대기 모드가 연결되었거나 연결 해제되었는지 확인하는 방법

이 가이드에서는 Windows 10의 대기 모드에 있을 때 Modern Standby가 Wi-Fi에 연결되어 있는지 또는 연결이 끊어졌는지 확인하는 방법을 보여줍니다.

WAN 포트와 LAN 포트의 차이점

WAN 포트와 LAN 포트의 차이점

무선 라우터를 살펴보면 일반적으로 장치의 일부 포트 옆에 LAN 및 WAN이라는 약어가 표시될 수 있습니다. LAN은 근거리 통신망(Local Area Network)을 나타내고 WAN은 광역 통신망(Wide Area Network)을 나타냅니다. 그렇다면 이 두 가지 유형의 포트의 차이점은 무엇입니까? 다음 글을 통해 퀀트리망과 함께 알아볼까요!

Windows 10/11에 매우 멋진 Doctor Strange 테마를 설치하는 방법

Windows 10/11에 매우 멋진 Doctor Strange 테마를 설치하는 방법

아주 멋지고 아주 멋진 Windows 10/11용 Doctor Stranger 테마입니다.

VPN이 랜섬웨어로부터 사용자를 보호할 수 있나요?

VPN이 랜섬웨어로부터 사용자를 보호할 수 있나요?

VPN은 온라인에서 자신을 보호하는 데 널리 사용되는 도구입니다. 따라서 랜섬웨어로부터 보호할 수 있는지 궁금할 것입니다.