https://konto.zssk.sk/zk/new#step1

Also, it only seems to show "Strong password" if any of these characters is used: !@#$%^&*, and not other special characters.

all 64 comments

sorted by: hot top controversial new old
[–] 108 points 6 days ago (12 children)

When they don't allow certain characters in the password, it makes you wonder if they are not hashing the passwords.

  • source
  • hideshow 12 child comments
  • [–] 80 points 6 days ago (5 children)

    They're probably also not escaping/sanitizing input at all which is also super concerning.

  • source
  • parent
  • hideshow 5 child comments
  • [–] 5 points 5 days ago

    My guess would be that they are sanitizing them, but their WAF blocks requests with particular characters in these fields in order to try and block SQL injection or something.

  • source
  • parent
  • [–] [S] 28 points 6 days ago (2 children)

    My bank doesn't support any special characters in the password, and letters are case-insensitive. At least the limit is 30 characters, so that's still good enough. Though I really wonder what kind of system doesn't differentiate uppercase and lowercase letters.

    Yet, somehow, they did implement OpenPGP for e-mail signing and encryption.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 28 points 6 days ago (1 child)

    Most MySQL/MariaDB collations are explicitly case insensitive (and optionally but very commonly blind to diacritics and accent marks). Your bank is obviously doing queries against a plain text database column.

  • source
  • parent
  • hideshow 1 child comment
  • [–] 6 points 5 days ago*

    Unfortunately there's a huge number of MySQL servers that are using latin1 charset and collation, even when storing Unicode data. Surprisingly it "works" as long as your DB client treats the data as raw bytes (ie you don't do any sort of string manipulation in MySQL), the same way that UTF-8 "works" in PHP even though native strings are just raw bytes.

    ,Obviously sorting and filtering won't take any sort of case insensitivity / case folding into account though, which is an issue.

    I hit issues with this recently at work, because for some reason all our MySQL servers still use latin1 by default. Unicode characters were getting corrupted in JSON columns, because MySQL forces them to use utf8mb4 as per the JSON spec (JSON sent between multiple systems should always be encoded as UTF-8), and mixing "real UTF-8" with "fake UTF-8" (UTF-8 in latin1) doesnt end well.

  • source
  • parent
  • [–] 20 points 6 days ago*

    it's worse. they're not even using query binding, they're just sticking the password into sql. a bound query would escape these characters properly, a raw query will just accept them as-is. they have a couple steps before they even get to hashing.

  • source
  • parent
  • [–] 61 points 6 days ago (9 children)

    That and maximum character limits of 12-20 are insane to me

  • source
  • hideshow 9 child comments
  • [–] 13 points 6 days ago* (last edited 6 days ago) (4 children)

    How large is the file a password is stored on? Can't be more than a few kB. You could probably store the plaintext passwords of literally every Facebook account on one reasonably sized hard disk. There's no reason we couldn't use 500-character passwords if we wanted. A handful of my passwords are over 1,000 characters.

    I'd reckon extreme length is much more effective for security than special characters. I'd reckon

    1TimewhenIwasatBandCamp,Istuckafluteinmyflutecase

    is significantly more secure than any password 8 characters in length for any aspiring flautist.

  • source
  • parent
  • hideshow 4 child comments
  • [–] 7 points 5 days ago (3 children)

    One of the most egregious cases of password length requirements I’ve ever experienced was for the Shinkansen booking website. Now, I acknowledge that it was probably possible to enter hiragana, katakana, or kanji, but for everyone that depends on the Latin alphabet the possible entropy for the password would be abysmal. The maximum password length is

    Tap for spoiler8

  • source
  • parent
  • hideshow 3 child comments
  • [–] 9 points 5 days ago (2 children)

    One of the big four banks in Australia (Westpac) used to limit you to a password of EXACTLY 6 characters, case insensitive. Another one (NAB) required 6 to 8 characters, case insensitive, with NO special characters.

    Thankfully they've both changed these limits.

    NAB no longer has a length limit, and they're actually planning on completely removing passwords in favour of passkeys. Westpac allow up to 30 characters now.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 57 points 5 days ago (8 children)

    "Tell me you're not sanitizing your inputs without telling me you're not sanitizing your inputs."

  • source
  • hideshow 8 child comments
  • [–] 6 points 4 days ago (3 children)

    Neither sanitizing nor even hashing. Hashes don't care what you put in.

  • source
  • parent
  • hideshow 3 child comments
  • [–] 4 points 4 days ago* (last edited 4 days ago) (2 children)

    That depends on how you are hashing. If you are doing something like 'os.shell("echo {password} | sha512sum")', you still have to be worried about special characters.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 41 points 6 days ago (5 children)

    The fact its specifically "" and ";" makes it seem really likely they're worried about SQL injections, meaning they must be using a super insecure SQL library and also sticking the password directly in the SQL query (so definitely no hashing)

  • source
  • hideshow 5 child comments
  • [–] 4 points 5 days ago (3 children)

    My guess is that it's not a vulnerability but their WAF still flags/blocks it so they don't want people using those characters.

  • source
  • parent
  • hideshow 3 child comments
  • [–] 0 points 5 days ago (2 children)

    My guess is that it is a vulnerability because it was probably vibe coded

  • source
  • parent
  • hideshow 2 child comments
  • [–] 21 points 6 days ago

    Little Bobby Drop Tables has a difficult life.

  • source
  • [–] 17 points 5 days ago* (13 children)

    Can I take the opportunity to ask a question?

    I work at multinational EU company, we run windows/office for the enduser. There are many parallel systems, some running linux or whatever but that’s besides the point

    But there was this audit, performed by an external company, at request of the holding (mother company) that revealed unsafe passwords that contained company name in it. According to the auditors that’s a big no no

    My question is: how tf do they even find out that the passwords have some specific string in it? Is it not being salted? That would surprise as our IT/network management team is very capable, and relies on windows tools that should be safe to begin

    Just how?

  • source
  • hideshow 13 child comments
  • [–] 13 points 5 days ago* (3 children)

    My guesses would be that either:

    • They conducted an employee survey where someone admitted the company name being a substring of a password they use.
    • They used some rudimentary bruteforce methods which matched salted registers or logins (say "Company name123456".)
    • Instead they meant that it is possible to create passwords with the company name in it, but transmitted it poorly.
    • Some of the passwords are unsalted.
    • The passwords are logged somewhere else.

    It goes without saying that if they found a vulnerability with the hashing or salting, it should be highlighted on its own, and in any case it wouldn't do damage to ask them directly.

  • source
  • parent
  • hideshow 3 child comments
  • [–] 4 points 5 days ago

    Thanks, it’s probably a combination of the above or even all of them

    And like another user shared, they may just be idiots

    I just wanted to confirm, there must be plain text databases, they got access to, maybe from some of the less secure systems, on the shop floor or wherever that may have unsecured protocols (they’re inside the corporate network, not directly connected to the internet)

    But I’m going with idiots

  • source
  • parent
  • [–] 4 points 4 days ago (4 children)

    They could have cracked the password hashes, most likely collected NetNTLMv2 hashes, using a generated list of weak passwords using the company name + a possible ruleset with hashcat.

    Some audits still do it against all NTLM hashes stored on the AD DC, but it fell a bit out of fashion because most orgs don't feel comfortable giving out that data for a pentest.

    NetNTLMv2 and NTLM hashes are also still notoriously easy to run dictionary and combo bruteforce attacks on with GPUs.

    You can see the benchmark for an RTX 5090 here: https://gist.github.com/Chick3nman/09bac0775e6393468c2925c1e1363d5c

    It can do a whopping 340.1 GH/s for NTLM and 16017.9 MH/s for NetNTLMv2

    Compare that to a Linux's default yescrypt which didn't even have official support in hashcat until this year because the hashrate would be a measly 70-200 H/s.

  • source
  • parent
  • hideshow 4 child comments
  • [–] 3 points 4 days ago (3 children)

    How feasible is it to attack argon2id with that method?

  • source
  • parent
  • hideshow 3 child comments
  • [–] 3 points 4 days ago* (2 children)

    argon2id is one of those newer algorithms created specifically to make cracking infeasible and protect against certain side channel attacks.

    An example performance from an Nvidia 90HX for LUKS is:

    Hash-Mode 34100 (LUKS v2 argon2 + SHA-256 + AES) [Iterations: 16]

    Speed.#01........: 9 H/s (53.28ms) @ Accel:8 Loops:1 Thr:32 Vec:1

    So correctly implemented, basically impossible lol.

    Hashcat also added recent support for argon2id standalone and keepassxc db, so I'll see if I can run my own benchmark just to see what it shows.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 2 points 4 days ago (1 child)

    Thanks! I was curious because I am using keepass and I do use argon2id lol. I was a bit skeptical because the 2s benchmark parameter seems oddly small, but nice knowing that it is actually quite good.

  • source
  • parent
  • hideshow 1 child comment
  • [–] 2 points 1 day ago

    On a GTX 1660:

    -------------------------------------------------------------------------------
    * Hash-Mode 34300 (KeePass Argon2 (KDBX v4)) [m=65536, t=2, p=2] [Kernel: pure]
    -------------------------------------------------------------------------------
    
    Speed.#01........:      434 H/s (75.99ms) @ Accel:67 Loops:4 Thr:32 Vec:1
    
    -------------------------------------------------------------------------------------------------------------
    * Hash-Mode 70000 (Argon2id [Bridged: reference implementation + tunings]) [m=65536, t=3, p=1] [Kernel: pure]
    -------------------------------------------------------------------------------------------------------------
    
    Speed.#*.........:       39 H/s
    
    --------------------------------------------------------------------
    * Hash-Mode 36100 (yescrypt) [N=4096, r=32, p=1, t=0] [Kernel: pure]
    --------------------------------------------------------------------
    
    Speed.#01........:      431 H/s (164.40ms) @ Accel:264 Loops:2048 Thr:32 Vec:1
    

    For some context, my keepassxc on my PC registers about t=50 for a 1 second unlock delay, so the example benchmark t=2 is faster than an IRL example, hence why the reference argon2id is much lower with only an additional transform round (t=3).

    But yeah it's definitely good, and since argon2id allows you to set the parameters (memory, transform rounds, parallell) you can go make it hilariously indestructible if you feel like waiting like 30 seconds to unlock a DB lol.

  • source
  • parent
  • [–] 1 point 5 days ago*

    Is there using Windows active directory tools than there is no way an auditor can have any possible idea what anyone has set their password to. Of course they might have simply asked the question and maybe some people would dumb enough to provide the answer but there's no way they can technologically find out.

    The only thing I can think of is that active directory will sync the password to other systems so if those are the systems were insecure perhaps that way you could access the data? I'm not really sure how AD handles SSO

  • source
  • parent
  • [–] 10 points 4 days ago (5 children)

    Yep. I've even seen a German federal system croaking on German umlauts (äöü, etc), without being more specific that "something went wrong".

  • source
  • hideshow 5 child comments
  • [–] 5 points 4 days ago (3 children)

    Etc!? Shit, this guy know about the secret fourth umlaut.

  • source
  • parent
  • hideshow 3 child comments
  • [–] 6 points 5 days ago (1 child)

    Ȟ̵̯͉͖̼̝͓͔̗̬͇̜̜̜̽̄̅͐̅̃̊̀͆̆͌̅̍̈̅̾̄͛̍͆̓͑͌͆̒̊̂̈̋̍̐̐̾̀̀̉̓̓̕͘̕͝ṵ̸̧̧̡̢̢̧͇͇̙͇̬̳̣̺͇̳̖̗̪̖̤͇͇̙̗̜͈̫̠̖̻͖͙̗̘͍̠͓̫̯̳̦̼̩͈͇̑̂̑̈̈̈́̓͗̈́̍̀̑̐̀͂͒͐̓̽́͛̏̈́̈͒̀̎̆̂̍͐̚͘̚͜͝ͅͅn̸͙͔̮̝̭̅̓̏͝ţ̵̧̧̡̟̯̭͔̼̖͉͔͍̟̞͎̰̪̼̤͈̝̠̜̗̩̬̤̺̗̥̖̽̿̑͂̉̿̓̆̕͠ͅȇ̷̡̢̞̣̪̼̮̖̟̝̼̤͚͍̰͉͉̥̟̹̱̼̮͚̂̂́́͛̆̊̆̀̂̂̄̔͐̆͌̾̌̓͆̇̽͒͘͘̕͜͝͠ͅr̶̨̛͚̳̗̮̟͉̤͎̺̺̮̤̯͇̹̖̮̯̣͔̺͉̝̠̞͇̖̗̮̪͕̗͇̱̣̪̤͎̰̤̻̘̱͈̀̀̄͐̀̊̀͗͑̃̈́̉̈́͋̑̀̇̓̉́̈́͋͑̉̓̏̏̕̕͠ͅ4̷̢̛̰̗͕̻̭͎͚̟̤̥̗̙̭͙̎́͊̎͆̍̂̑̄͐̂̈́̋̃͝2̶̢̢̢̛̭̘͍̮̪͇̙̪̠͖̗̟̮͚̙̼̹͈͙̥͓̘̗̾̿̉͌̂͌̽̔̾̿̏̈̿̋̈́͐̔̇͋̏͊̎̒́̏̌́̎͐͘͘̚̕͜͠͠

  • source
  • hideshow 1 child comment
  • [–] 4 points 5 days ago* (last edited 5 days ago)

    I used a website, (the USCIS), which pointed out that they accepted emojis in the password.

    Edit: remembered which site it was. It's mentioned here, although they may have switched to id.me now, so the rules may have changed.

    https://www.aila.org/aila-files/83E22577-0F60-4BBA-AF2B-4AECC7F28F5E/23021709.pdf

  • source
  • [–] 1 point 5 days ago

    Btw, does E-bay now support "special" characters in the password? Is it still 1990?

  • source
  • Seems like they're advertising a vulnerability pretty loud there

  • source