본문 바로가기

도서실습

[bee-box 모의해킹] A8 크로스 사이트 요청 변조(CSRF)

도서 ⌜비박스 환경을 활용한 웹 모의해킹 완벽 실습⌟ 를 활용한 실습을 하였다. 오늘의 실습 주제는 크로스 사이트 요청 변조(CSRF)이며, 도서의 chapter 25~28에 해당한다. 그러나 burp suite 사용에 문제가 있어 chapter26과 28만 실습하였다.

 

 

Chapter 26. 비밀번호 변경 - Change Password

 

csrf_1.php

 

 

csrf_1.php 페이지에 들어가서 Change를 클릭하면 url이 다음과 같이 요청된다.

 

 

책에 써있는 대로 htmli_stored.php 페이지로 이동해서 img 태그를 이용한 공격 코드를 작성하여 submit 한다. 

 

 

비밀번호를 새롭게 evil로 변경하였으므로 로그인 페이지에서 로그인할 때 기존의 비밀번호인 'bug'를 입력하면 로그인에 실패하고, 새 비밀번호인 'evil'을 입력하면 로그인에 성공한다.

Login: bee / Password: bug 로 입력하여 로그인에 실패한 모습

 

Login: bee / Password: evil 로 입력하여 로그인에 성공한 모습

 

 

 

 

 

Chapter 28. 계좌 이체 - Transfer Account

 

csrf_2.php

 

F12키를 눌러 개발자 도구를 열어 웹페이지의 소스코드를 확인해보면 account 변수(계좌번호)와 amount 변수(이체할 금액)가 노출되어 있는 것을 확인할 수 있다.

 

 

소스코드를 살펴보면 GET 메서드로 요청되고 있으므로 transfer 버튼을 클릭하면 다음과 같이 url에 변수를 노출한다.

 

 

xss_stored_1.php 페이지로 이동하여 img 태그를 이용한 csrf코드를 작성하고 submit 버튼을 클릭하여 정보를 입력한다.

 

 

다시 csrf_2.php 페이지로 이동하면 Amount on your account 값이 1000EUR에서 1400EUR로 증가한 것을 확인할 수 있다. 

 

 

다시 xss_stored_1.php 페이지로 이동하여 조작한 이미지 태그가 있는 페이지로 사용자가 접속한 상황을 만든 뒤, 다시 csrf_2.php 페이지로 돌아오면 또 Amount on your account 값이 증가해있는 것을 확인할 수 있다.

 

 

비슷한 방법으로 특정 계좌로 돈을 입금하게 하는 것도 가능하다. xss_stored_1.php 페이지에서 img태그를 이용한 csrf 코드를 입력할 때 amount 값을 양수로 하면, 양식 제출 후 다시 csrf_2.php 페이지로 돌아왔을 때 잔액(Amount on your account)이 감소해있는 것을 확인할 수 있다.