Are they just an issue with wefwef or trying to use an exploit

  • @Tartas1995@discuss.tchncs.de
    link
    fedilink
    98
    edit-2
    1 year ago

    Hey, I can tell you want it does. While I don’t know if they try to download something too (while it really doesn’t look like it), they are trying to steal your browser cookies.

    I haven’t removed the obfuscation yet as I am literally in bed but I can tell the general idea of the code.

    Onload is a html attribute. Html attribute tell your browser more about what the browser should be doing. So basically onload is an instruction to your browser. By posting those comments, they try to run something called cross site scripting. Basically they want to run their code in your browser without them being the website owner. So now we know the intend of the post, let’s look into the details.

    Onload is an attribute that tells the browser to do something once it is fully loaded.

    Fetch is a function that allows your browser to request additional information from the server. Endless scrolling would be done with that.

    String.fromcharcode is just there to hide a little bit. Think of it as a fancy way to say a word. they are saying a website to connect to there.

    Then document.cookie are your cookies for that website.

    The next thing is probably your username or something.

    So what does that mean? They try to make your browser execute their code when the website is onloaded. The code sends your cookies and your username(?) To a server. They probably save the username and cookie and try to steal the account later.

    You seeing the code is good evidence that your browser hasn’t execute the code as the browser didn’t understand it as code to be executed but code to display. So you are probably safe and don’t need to worry

    Edit: ups sorry for not answering the question. I don’t know which client they are targeting. They might or might not be targeting wefwef. But they target you, the user, too. And it is probably for Webbrowser users, so chances are wefwef or other web clients.

    Edit edit: some people pointed out that it is not the username but basically the admin status of the account.

    • 𝙚𝙧𝙧𝙚
      link
      fedilink
      45
      edit-2
      1 year ago

      Looks like it’s issuing a GET to https://zelensky.zip/save/{ENCODED_JWT_TOKEN_AND_NAV_FLAG}. The ENCODED_JWT_TOKEN is from btoa(document.cookie+nav_flag) where nav_flag is essentially 'navAdmin' if the account hit is an admin or '' if the user hit is not an admin (it checks if the admin button in the nav exists). Their server is likely logging all incoming requests and they just need to do a quick decoding to get jwt tokens and a flag telling them if it’s an admin account.

      I’d be hesitant to visit Lemmy on a browser atm 😓

          • 𝘋𝘪𝘳𝘬
            link
            fedilink
            131 year ago

            To prevent execution of scripts not referenced with the correct nonce:

            script-src 'self' 'nonce-$RANDOM'
            

            To make it super strict, this set could be used:

            default-src 'self';
            script-src 'nonce-$RANDOM'
            object-src 'none';
            base-uri 'none';
            form-action 'none';
            frame-ancestors 'none';
            frame-src 'none';
            require-trusted-types-for 'script'
            

            Especially the last one might cause the most work, because the “modern web development environment” simply cannot provide this. Also: form-action 'none'; should be validated. It should be set to self if forms are actually used to send data to the server and not handled by Javascript.

            The MDN has a good overview: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy

      • I don’t know what Lemmy uses tbh. I don’t even know if the code would work when run. Like i don’t know e.g. if they grab the username(?) correctly. I just understand their intentions but yeah their execution might be horrible.

        • 𝙚𝙧𝙧𝙚
          link
          fedilink
          41 year ago

          I’d be willing to bet they’re using the API to make all the changes. The cookie has the jwt token. I don’t believe you need the username (at least judging by the js API docs).

    • Gellis12
      link
      fedilink
      71 year ago

      The encoded strings are https://zelensky(dot)zip/save/ and navAdmin