본문 바로가기

Hacking/Web Hacking-

[7]WebHacking(웹해킹) - CSRF

안녕하세요 CISA입니다.

이번강의는 CSRF에 대해 포스팅해볼텐데요,

 

XSS와 비슷한 개념이라 이해하시면 되겠습니다.

 

▶ CSRF (Cross SIte Request Forgery) 

 

 - CSRF 는 XSS와 달리 JavaScript를 사용할 수 없는 상태라도 공격이 가능하다. 사이트에서 제공하는 기능을 피해자의 웹 브라우저에서 

   요청시키도록 하는 공격이다. 공격자의 악성코드를 읽은 피해자는 요청을 서버로 보내게 되며, 서버는 피해자의 권한으로 요청에 대한

   처리를 하게 된다.  

 - 사전 승인된 요청을 취약한 웹 어플리케이션에 보내도록 함으로써 희생자의 브라우저가 공격자에게 이득이 되는 악의적인 공격기법

 

▶ CSRF 발생 원인

 

 - 개별 링크와 폼이 사용자 별로 예층 가능한 토큰을 사용할 때 발생한다.

 - 예층 불가능한 토큰이 있다면 공격자는 요청 메시지를 변조 할 수 없지만, 예층 가능한 토큰이 있다면 공격자는 요청 메시지를 변조 할

   수 있다. 그러므로 상태를 변경하는 기능들을 호출하는 링크와 폼이 CSRF 공격의 가장 중요한 공격 대상이다.

 - 인증이나 세션쿠키 등 모든 웹 사이트에서 인증된 사용자가 보내는 데이터는 정상적인 경로를 통한 파라메터 요청으로 판단함 즉

    정상적인 요청과 비 정상적인 요청을 구분하지 못한다.

 

▶ CSRF 발생 순서

 

 

 

1) 공격자는 CSRF 스크립트가 포함된 내용을 게시글에 올린다.

2) 희생자는 CSRF Script 가 포함된 페이지를 요청 한다.

3) WebServer 가 받은 요청에 대해 응답을 한다.

4) 응답 받는 희생자는 CSRF 에 의해 Victim의 권한으로 사용 가능한 서비스를 요청한다.

 

▶ CSRF 공격 예

 

 - 관리자가 게시판 글을 읽는데 게시글속에 권한 상승 코드나, 결재 코드 등을 입력하여 글을 읽게 되면 게시글 속에있는 코드도

   같이 실행되게 하는 기법

 - 관리자가 실행하게 되므로 권한 상승도 가능하게 함

 - 자동 댓글 달기

 - 자동 회원가입 및 정보 변경

 

▶ CSRF 공격 영향

  - 사용자 계정생성

  - 로그아웃

  - 중요한 데이터 엑세스

  - 계정정보 변경

  - 관리자 권한 획득

  - 검색 순위 조작

  - 웹 관리를 지원하는 라우터 및 공유기 설정 변경

 

▶ CSRF 공격 방법

 

 

위 페이지는 TEST 페이지입니다.

 

 

--> 해당 게시판의 접속해 게시물 등록란에 있는 소스를 가져온다.

 

 

-> 게시판 등록란의 소스 중에 Form 부분만 다시 가져 오도록 한다. 테이블이나, 크기 등 불필요한 부분은 버리고 입력부분과 저장부분

     의 코드만 다시 간단하게 수정 하도록 한다.

 

 

 

 

--> Test를 위해 제목, 내용 과 보내는 부분만 간단히 입력했다. 만들어진 Script를 복사해 게시판에 올리도록 한다.

 

 

--> 사용자가 Script가 포함된 게시글을 클릭시 'aaaa' 라는 제목의 글이 자동으로 생기는것을 확인 할 수 있다.

 

 

다른 설명 :

 

게시판에 글을 게시하여 내용에 레벨을 변경하는 스크립트를 작성한다.

 

 

 

 

게시판에 스크립트 삽입

 

<img src=http://서버 IP/다음 주소 (예를들어 http://www.tistory.com/admin)/admin_setup.php?exec=view_member&exec2=modify_member_ok&group_no=2&member_no=4&page=1&page_num=10&keykind=&keyword=&like=&password=1234&password1=1234&is_admin=3&level=1&name=guest3&maxdirsize=0 width=0 height=0></img>

한가지 더 예를들어, 스크립트  사진

 

 

(위사진은 zeroboard 취약점)

자세히보시면 http://32.1.21.87/zb4/bbs?admin_setup ~ 이보이실겁니다

서버 주소 /그뒤 디렉토리/ 이런식으로갑니다.

이처럼 위에서 group_no와 member_no, level 등은 변합니다.

 

해당 레벨을 상승시키기 위하여

(level이 2라면 3으로 올려야하므로)

(img src 로도 태그삽입이 가능하며, img src를 이용하여 XSS해킹 및 CSRF해킹이 가능합니다)

 

 

이렇게됩니다.

 

Write By. CISA

Thanks To.임종욱