XSS / CSRF

블로그의 모든 내용은 학습 목적으로만 사용하세요.

불법적인 행위에 대한 모든 책임은 당사자에 있습니다.


<Cross Site Script>

CSS

- 웹 사이트 스타일 시트와 이름이 같다.

 

XSS

- Client side(Endpoint) --> 웹 사이트에 있는 코드가 사용자PC에서 동작한다.

- 이니셜만 바꾸고 부르는 이름이 같다.

 

Reflected - 반사 --> script 저장 - 결과가 다른 저장소에 저장됨

Strored - 저장 --> 게시판, 댓글창에 작성 시 서버에 저장됨 

 

Internet Explorer 에서 Edge로 바뀐 이유 - Active-X (브라우저가 사용자 pc원격제어)취약성 문제

C:\User\kitri\AppData\Local\Google\Chrome 하위 디렉터리에 쿠키값이 남는다.

 

view source로 사이트 동작 원리를 확인할 수 있다.

 

<script 삽입>

 

<결과화면>

 

XSS 해킹과정

1. 해커 --> 정상적인 서버 URL을 전송 --> 서버에 접속 --> 악성 스크립트 실행 --> 피해자의 PC에서 스크립트 실행

스크립트는 고전적인 방법

--> <iframe> = 외부 페이지를 호출

 

 <iframe src = "https://msf2.ubiedu.com"><iframe>

 

<CSRF>

 

공격자가 서버 공격 시 스크립트 삽입 - 피해자가 스크립트 실행 - 스크립트가 서버로 돌아가서 서버 역할 수행

 

one click attack - 내가 클릭하지 않은 메뉴가 자동으로 클릭

zero click attack -   게시판, 댓글 : 스크립트 추가 (안보임) URL을 통해 script 전송

 

세션을 탈취 + 이용하는 공격 - session riding

 

취약점 발생 원인

request가 발생하는 경로를 검사하지 않기 때문에 발생

 

점검법

취약여부 의심되는 application이 경로 검사하는지 여부 확인

referer 값을 지움

게시글 작성 후 request 잡아서 repeater에 붙여 넣은 후 통과

게시물 등록 시 강제로 referer 삭제 후 다시 요청

 

피해범위 및 공격 시나리오

서버가 가진 모든 기능이 피해범위 , 피해자 권한이 높을수록 피해 커짐

 

기본형 -> XSS

 

XSS : 피해서버에 공격코드가 저장되어 있다.

         -> 피해자는 서버에 접근함으로써 공격을 받게된다.

 

CSRF : 피해자가 실행하는 스크립트가 피해서버에 영향을 준다.

                             ------------------------ : 명령이 피해자의 권한을 갖고 서버에 다른 명령을 전달.

             -> 피해자가 실행한 것처럼 위조.

● Session Riding

: 세션을 탈취하여 공격

 

1. 취약점 발생 원인 : Request가 발생하는 경로를 검사하지 않기 때문에 발생한다.(Src. 검사)

2. 점검 방법

    취약 여부가 의심되는 Application이 경로를 검사하는지의 여부를 확인한다.

    Referer 값을 지운다.

    게시글을 작성하고 request를 잡아서 repeater에 붙여 넣은 후 통과시킨다.

    그리고 게시물이 등록되면 강제로 referer을 삭제하고 다시 요청해본다.

3. 피해 범위 및 공격 시나리오

    서버가 가진 모든 기능이 피해범위이고, 피해자의 권한이 높을수록 피해가 커진다.

 

 


● 실습

 

 

: http://www.dvwa.com/vulnerabilities/csrf/?password_new=1111&password_conf=1111&Change=Change#

?password_new=1111&password_conf=1111&Change=Change#

 

 

curl ~> GET방식으로 사이트에 요청을 보내는 프로그램

curl --cookie : "쿠키"를 전달하는 옵션

curl --location : 전달할 "GET주소"

 

쿠키 :

"PHPSESSID=3uvcoccbcvlhe5sdbb9646qag3; security=low"

GET주소 :

"http://www.dvwa.com/vulnerabilities/csrf/?password_new=1111&password_conf=1111&Change=Change#"

 

적용

curl --cookie "PHPSESSID=3uvcoccbcvlhe5sdbb9646qag3;security=low" --location "http://www.dvwa.com/vulnerabilities/csrf/?password_new=12345&password_conf=12345&Change=Change#"

?password_new=asd123%21%40
- : Query : 서버에 질의를 한다.
  -------------------- : 변수
                              = : 대입연산자
                                ---------------------- : 리터럴
                                                        

&password_conf=asd123%21%40

- : AND연산자
  -------------------- : 변수
                              = : 대입연산자
                                 --------------------- : 리터럴

&Change=Change#

- : AND연산자

   ---------- : 변수
                 = : 대입 연산자

                     ------------ : 리터럴

'해킹기법' 카테고리의 다른 글

정보수집 관련 해킹 툴 정리  (0) 2023.07.25
File Inclusion  (0) 2023.07.25
Command injection  (0) 2023.07.14
Netcat - 작성중  (0) 2023.07.14
브루트퍼스 공격과 snort를 이용한 IDS 실습  (0) 2023.07.13