Suivi — Autres Apparition de paramètres inquietants dans les urls

#2042 Posté par  (site web personnel, Mastodon) . État de l’entrée : corrigée. Assigné à Benoît Sibaud. Licence CC By‑SA.
Étiquettes : aucune
2
5
nov.
2022

Lu et confirmé sur ZdS

Comportement reproduit sur : Windows 10, ubuntu 20.04, macOS 13.0 (Firefox 107 Developer Edition)

  • Aller sur la page d’accueil du site ;
  • Scroller en bas de page pou voir les liens de la pagination ;
  • Cliquer sur une page au hasard ;
  • Répéter l’opération 3 à 4 fois ;

En plus du paramètre page, de nouveau paramètres sont rajoutés à l’URL.

Les paramètres en sus ressemblent à

banner_size=..%25252525252Fetc%25252525252Fpasswd&page=15 g2_itemId=1%2525252BOR%2525252B1%2525252B%2525253D%2525252BSLEEP%252525289999999999%25252529—%2525252B%25252527A%2525253D0&page=21

  • # Résumé des tests fait par les moules de la tribune et de leur élucubrations

    Posté par  (site web personnel, Mastodon) . Évalué à 4 (+0/-0).

    Dans l'ordre chronologique :

    Shift

    Soit c'est la Developer Edition, soit c'est Firefox 107+

    Octane

    je dirais que ça pue le zozo qui a lancé un scanner de vuln dégueulasse sur linuxfr, qu'il a pété un truc dans le backend sans s'en rendre compte, qu'il y a un article ou un tag ou quelque chose rempli d'injections dégueulasses, et qu'on tombe un peu au hasard dessus

    Tofe

    dès le premier coup, avec 107, pouf

    ce expliquerait qu'on ne reproduit pas avec d'autres versions de Firefox.

    https:// linuxfr.org /?function=call_user_func_array%25252527A%2525253D0%25252522%2525252BOR%2525252BNOT%2525252B2691%2525253D4873--%2525252BGgxO&page=5&s=index%2525252F%25252509hink%25252507pp%2525252Finvokefunction&vars%2525255B0%2525255D=var_dump

    Suggestion pour reproduire le problème (si je comprends bien).

    il faut faire ça sur une page spécifique genre curl 'linuxfr.org' -H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:106.0) Gecko/20100101 Firefox/106.0' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,/;q=0.8' -H 'Accept-Language: en-US,en;q=0.5' -H 'Accept-Encoding: gzip, deflate, br' -H 'Connection: keep-alive' -H 'Referer: linuxfr.org' -H 'Cookie: linuxfr.org_session=ZFlkVHBQSys0S3NhZ2tXaExTY0wzN3BKL3VxVWo1UnE5cjE3a3R5ci8yNFJVWldmSDUvdHhlRkttS2FWUXNFL2hmN2hnR1QzYVdhaE4wa29TS1Q1R1NCTnFDK2tKM3dseWtZWjZTdi9WYjVrWHl0RkJ1S3BiTjkzT3VCdjlNc0RyRDBkR2doRTUrWTBjbnpZaUhrS0V3PT0tLUFyOFluak16V29lQlFTdjk5WjJJYnc9PQ%3D%3D--9ac30665abe9052c1ac831724b0e75496ca392f1' -H 'Upgrade-Insecure-Requests: 1' -H 'Sec-Fetch-Dest: document' -H 'Sec-Fetch-Mode: navigate' -H 'Sec-Fetch-Site: same-origin' -H 'Sec-Fetch-User: ?1' -H 'TE: trailers'

    « Tak ne veut pas quʼon pense à lui, il veut quʼon pense », Terry Pratchett, Déraillé.

  • # tests

    Posté par  (site web personnel) . Évalué à 3 (+0/-0).

    J'ai pu reproduire sous LM21 avec Firefox 106.0.3 en navigation privée, en étant déconnecté de LinuxFr. En étant connecté en mode normal, ça ne me le fait pas. Ça me le fait même si je désactive toutes mes extensions.

    Par exemple ça:

    https://linuxfr.org/?_sm_au_=iHVPRNWSQkQfknnt&amp%25252525253Bpage=9&amp%25252525253Btoken=266&page=21
    

    Je ne sais pas si ça peut aider: https://stackoverflow.com/questions/42389669/what-is-this-query-string-parameter-sm-au#42444753

    Est ce que ça pourrait venir des fonctionalités anti-tracking de Firefox?

    Un LUG en Lorraine : https://enunclic-cappel.fr

    • [^] # Re: tests

      Posté par  (site web personnel) . Évalué à 0 (+0/-0). Dernière modification le 05 novembre 2022 à 22:56.

      Bizarre …

      J'ai même cette URL parfois:

      linuxfr.org/?banner_size=320x240%27A%3D0&close_cross_action_click=11&content_niche=infidele&corner_position=right-bottom-top&design=01&e=1%27+and+%27x%27%3D%27x&email=&id=10000&page=8&sound=0&synergie=494&tracker=_oopt4e_1_197&typecontenu=sexy&w=0

      O_o: typecontenu=sexy, content_niche=infidele.

      • [^] # Re: tests

        Posté par  (site web personnel, Mastodon) . Évalué à 2 (+0/-0). Dernière modification le 06 novembre 2022 à 05:39.

        Quelle bannière de soutiens est affichée quand ça vous arrive ?

        Il me semble que du code malveillant peut être injecté par là. Comme la bannière est tirée au hasard, ça pourrait expliquer pourquoi ça n'arrive que de temps en temps.

        • [^] # Re: tests

          Posté par  (site web personnel, Mastodon) . Évalué à 2 (+0/-0).

          Ça s'est produit avec la bannière "libre association point info" (page 15, si jamais, mais je pense que le numéro de page n'influence pas).

          • [^] # Re: tests

            Posté par  (site web personnel, Mastodon) . Évalué à 2 (+0/-0).

            Ah c'est la page précédente qui modifie tous les liens de numéro de page. La bannière de cette page était celle de "framasoft la route est longue mais la voie est libre" avec juste le logp de framasoft et des pinguins. Là c'est la page 8 qui a modifié les liens du pager.

        • [^] # Re: tests

          Posté par  (site web personnel) . Évalué à 5 (+0/-0).

          Je dirais que ça n'a rien à voir avec le navigateur, et que c’est juste le cache de pagination des non-authentifiés qui renvoie les URL pourries de certains bots, sans conséquence particulière à part d'image.

          • [^] # Re: tests

            Posté par  (site web personnel, Mastodon) . Évalué à 3 (+0/-0).

            Ah oui, ça ressemble bien à ça.

            En déconnecté, j'ai essayé d'accéder a la page: ?page=99&test=adrien et maintenant tous les liens de sélection de la page 99 contiennent mon texte test=adrien.

            Il faudrait que le serveur nettoye les paramètres de la query string avant de créer les liens à cliquer…

            • [^] # Re: tests

              Posté par  (site web personnel) . Évalué à 5 (+0/-0). Dernière modification le 06 novembre 2022 à 17:53.

              C'est parti pour une grande session de « y a pu qu'à corriger et tester ».

              paramètres optionnels :
              
              - order=<created_at|interest|last_commented_at|score>
              - page=<id>
              
              GET /?order=<order>&page=<page>                       // app/views/home/index.html.haml
              GET /changelog?page=<page>                            // app/controllers/static_controller.rb
              GET /forums/<id_or_name>?order=<order>&page=<page>    // app/views/forums/show.html.haml
              GET /forums?order=<order>&page=<page>                 // app/views/forums/index.html.haml
              GET /journaux?order=<order>&page=<page>               // app/views/diaries/index.html.haml
              GET /liens?order=<order>&page=<page>                  // app/views/bookmarks/index.html.haml
              GET /news?order=<order>&page=<page>                   // app/views/news/index.html.haml
              GET /readings?order=<order>&page=<page>               // app/views/readings/index.html.haml
              GET /sections/<section>?order=<order>&page=<page>     // app/views/sections/show.html.haml
              GET /sondages?order=<order>&page=<page>               // app/views/polls/index.html.haml
              GET /suivi?page=<page>                                // app/views/trackers/index.html.haml
              GET /tags?order=<order>&page=<page>                   // app/views/tags/index.html.haml
              GET /tags/<tag>?order=<order>&page=<page>             // app/views/tags/show.html.haml 
              GET /tags/<tag>/public?order=<order>&page=<page>      // app/views/tags/public.html.haml
              GET /users/<user>/comments?page=<page>                // app/views/users/comments.html.haml
              GET /users/<user>/journaux?order=<order>&page=<page>  // app/views/users/journaux.html.haml
              GET /users/<user>/liens?order=<order>&page=<page>     // app/views/users/liens.html.haml
              GET /users/<user>/news?order=<order>&page=<page>      // app/views/users/news.html.haml
              GET /users/<user>?order=<order>&page=<page>           // app/views/users/show.html.haml
              GET /users/<user>/posts?order=<order>&page=<page>     // app/views/users/posts.html.haml
              GET /users/<user>/suivi?order=<order>&page=<page>     // app/views/users/suivi.html.haml
              GET /users/<user>/wiki?page=<page>                    // app/views/users/wiki.html.haml
              GET /wiki/modifications?page=<page>                   // app/views/wiki_pages/changes.html.haml
              GET /wiki/pages?order=<order>&page=<page>             // app/views/wiki_pages/pages.html.haml
              GET /<yyyy>/<mm>/<dd>?order=<order>&page=<page>       // app/views/news/calendar.html.haml
              
              + app/views/admin/accounts/index.html.haml
              + app/views/admin/applications/index.html.haml
              
              • [^] # Re: tests

                Posté par  (site web personnel, Mastodon) . Évalué à 3 (+0/-0).

                J'ai essayé deux solutions:

                1. nettoyer les paramètres depuis le controleur (par exemple, le BookmarkController)

                Apparemment, je n'ai pas réussi à réécrire les paramètres avec RoR. J'ai essayé entre autre params.permit(:order, :page) et params.extract!(:order, :page), mais le comportement n'a pas changé sur mon poste.

                2. de configurer kaminari (le module qui gère les liens pour la pagination)

                De ce que je comprends, kaminari ne prend pas par défaut les paramètres de la page et on doit lui dire quels paramètres utiliser (avec une option params sur la méthode pagniate()).

                D'abord, apparemment, le comportement par défaut avec LinuxFr prend tous les paramètres de la page. Je n'ai pas compris pourquoi c'est l'inverse de ce que j'ai vu dans les rapports de bug.

                Ensuite, j'ai essayé de configurer quand même l'option params: j'arrive à ajouter des paramètres en plus dans les liens (genre, &foo=bar), mais je n'arrive pas à en enlever.


                Si des connaisseurs de RoR passent par là, un coup de main serait apprécié, je n'y arrive pas :(

    • [^] # Re: tests

      Posté par  (site web personnel, Mastodon) . Évalué à 3 (+0/-0).

      En effet, les testeurs de ZdS n'étaient pas connecté-e-s, contrairement à moi (qui n'ai pu reproduire)

      “It is seldom that liberty of any kind is lost all at once.” ― David Hume

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.