Skip to content
DevMeme
3645 of 7590
Security Post #3983 · source on Telegram

Sabotaging Your Own Data Breach with CSVs

Description

This is a two-panel meme featuring the character Skeletor from 'He-Man and the Masters of the Universe,' in a format where he gives terrible advice and then leaves. In the top panel, Skeletor is facing the viewer with his hands open, and the caption reads: 'ADD COMMA'S TO YOUR PASSWORDS TO MESS WITH THE CSV FILE THEY WILL BE DUMPED INTO AFTER BEING BREACHED.' The bottom panel shows Skeletor walking away with the text 'UNTIL NEXT TIME.' The joke is a cynical take on cybersecurity, suggesting that since data breaches are inevitable, one might as well inconvenience the attackers. The humor lies in the technical detail: a comma in a password could break a poorly configured CSV parser, as commas are the default delimiter. For a senior developer, this is funny because it's technically plausible yet utterly useless as a security measure, highlighting the absurdity of trying to get petty revenge in the face of systemic security failures

Comments

27
Anonymous ★ Top Pick Using a comma in your password won't stop a breach, but it might cause an intern to spend a week debugging a broken import script, and that's a small victory
  1. Anonymous ★ Top Pick

    Using a comma in your password won't stop a breach, but it might cause an intern to spend a week debugging a broken import script, and that's a small victory

  2. Anonymous

    Security through RFC 4180 non-compliance: slip a couple commas into your password so when the breach hits, the attacker’s import script and a 3 AM intern both get to discover why pandas suddenly thinks there are 17 columns

  3. Anonymous

    The real CSV injection vulnerability was the plaintext passwords we stored along the way. Though honestly, if your breach response plan involves hoping attackers can't handle RFC 4180 compliant parsing, you've got bigger problems than delimiter escaping

  4. Anonymous

    The real genius here is weaponizing CSV's Achilles' heel: assuming commas are just delimiters. When your password is 'P@ssw0rd,123,"DROP TABLE users;--', you're not just defending against brute force - you're launching a post-breach DoS attack on the attacker's pandas.read_csv() pipeline. It's the security equivalent of salting the earth after the barbarians have already sacked Rome. Sure, your account is compromised, but at least their ETL job will fail spectacularly at 3 AM, and some junior analyst will spend hours debugging why their credential stuffing automation keeps throwing ParserErrors. Defense in depth? More like spite in depth

  5. Anonymous

    If your breach mitigation strategy is weaponizing commas, you don’t need a red team - you need RFC 4180, salted hashes, and a ban on “Export to CSV.”

  6. Anonymous

    Because post-breach, why hand attackers clean CSVs when you can force them into a delimiter-fueled ETL debugging marathon?

  7. Anonymous

    Password policy: 16+ chars, a symbol, a digit, and one unescaped quote - can’t stop breaches, but we can make their RFC4180 parser rage‑quit on line 1

  8. @tarasssssssssssssss 4y

    Big brain time

    1. @nkormakov 4y

      small brain actually: regular_value,",,,"",""

  9. Ievgen 4y

    csv exporter that makes escaping by default: hmm, interesting

  10. @paul_thunder 4y

    Newcomer meme

  11. @ZgGPuo8dZef58K6hxxGVj3Z2 4y

    Or just do what google and youtube does add this to every response's beginning: }]), ); And add ) at the end of the request

    1. @affirvega 4y

      And add "; delete table users;

    2. Deleted Account 4y

      What

      1. @ZgGPuo8dZef58K6hxxGVj3Z2 4y

        Yes I am reversing youtube and google search so i can use it without api key as native apps

        1. Deleted Account 4y

          But no seriously why do they return that?

          1. @ZgGPuo8dZef58K6hxxGVj3Z2 4y

            Idk but if I remember correctly then youtube has also a response that forces the client to reload the page... you know the page normally doesnt reload completely just updates the non-static content with JavaScript with get requests... so this means the youtube site is already in the browser and doesnt need to be reloaded so when the yt servers get updated and the "old" site in the browser makes a request with the old header the server sends this back to force reload the site: }]), );("reload":"now")) This is totally funny to me

            1. Deleted Account 4y

              That's normal

        2. @mvolfik 4y

          for youtube you're probably better off with youtube-dl (well, that's dead, go with the yt-dlp fork)

          1. @RiedleroD 4y

            wait, ydl is dead?

            1. @RiedleroD 4y

              waow, yt-dlp is already available in the main arch repos

          2. @ZgGPuo8dZef58K6hxxGVj3Z2 4y

            I already figured out a lot of stuff at my own. I can rip videos in best quality just like those fake looking video converter sites.

  12. @SamsonovAnton 4y

    https://xkcd.com/538/

    1. @sylfn 4y

      password he tells: "семидесятипятимиллиметровый" (read as syemIdyesyatIpyatImillimetrOvyiiy (capital letters are stressed), means has length of 75 mm) you have only one attempt for writing password

      1. @SamsonovAnton 4y

        — Is "seventy-five-millimeters-long" actually long or short? — That depends on the subject: if it is a password, then, probably, yes, otherwise it may be considered tiny.

    2. @Agent1378 4y

      http://termorect.narod.ru/

  13. @QutePoet 4y

    Why the heck someone will use CSV for dumping if it can be SQLite or MySQL? https://datasette.io/ take a look at this.

Use J and K for navigation