| ▲ | pqdbr 8 hours ago | |||||||||||||||||||
Recently we suffered a different kind of subscription bombing: a hacker using our 'change credit card' form to 'clean' a list of thousands credit cards to see which ones would go through and approve transactions. He ran the attack from midnight to 7AM, so there were no humans watching. IPs were rotated on every single request, so no rate limiter caught it. We had Cloudflare Turnstile installed in both the sign up form and in all credit card forms. All requests were validated by Turnstile. We were running with the 'invisble' setting, and switched back to the 'recommended' setting after the incident, so I don't know if this less strict setting was to blame. Just like OP, our website - to avoid the extra hassle on users - did not require e-mail validation, specially because we send very few e-mails. We never thought this could bite us this way. Every CC he tried was charged $1 as confirmation that the CC was valid, and then immediately refunded, erroring out if the CC did not approve this $1 transaction, and that's what he used. 10% of the ~2k requests went through. Simply adding confirmation e-mail won't cut it: the hacker used - even tough he did not need it - disposable e-mail addresses services. This is a big deal. Payment processors can ban you for allowing this to happen. | ||||||||||||||||||||
| ▲ | corbet 18 minutes ago | parent | next [-] | |||||||||||||||||||
Being used to validate stolen card numbers has long been a problem; we've had to put in a number of defenses to fight our way off whatever list of "easy sites" these folks maintain. I hadn't thought about the "change card" path though...another bit of time spent away from what our business is really supposed to be doing... | ||||||||||||||||||||
| ▲ | shaky-carrousel 7 hours ago | parent | prev | next [-] | |||||||||||||||||||
Well, what you can do is notify the card issuer about those cards that went through, so they can mark them as stolen. That surely will make the hacker really happy, and discourage them of doing it again :) | ||||||||||||||||||||
| ||||||||||||||||||||
| ▲ | AndroTux 6 hours ago | parent | prev | next [-] | |||||||||||||||||||
We solved this by introducing a silent block. If the system notices unusual behavior (too many payment attempts per user, for example), it no longer sends the payment attempt to the provider. Instead, it idles for a second or two and then just fails with a generic “payment declined.” Most attackers don’t notice they’re being blocked and just assume all credit cards are bad. | ||||||||||||||||||||
| ||||||||||||||||||||
| ▲ | federicosimoni 6 hours ago | parent | prev | next [-] | |||||||||||||||||||
The $1 auth charge pattern is really common for card testing attacks. One thing that helps beyond Turnstile: Stripe Radar rules. You can block charges under $2 from IPs that haven't had a successful payment before, or flag accounts with multiple card attempts in short windows. Not foolproof but adds a layer before the human review kicks in. | ||||||||||||||||||||
| ▲ | Steve16384 5 hours ago | parent | prev | next [-] | |||||||||||||||||||
Did they use the same username/login every time? | ||||||||||||||||||||
| ▲ | imrozim 5 hours ago | parent | prev | next [-] | |||||||||||||||||||
the $1 auth charge pattern is what makes this brutal payment processors see you as enabling card testing even if you're the victim.stripe has actually terminated accounts for this. turnstile invisible mode is basically just logging at that point,it rarely challenges anything. lesson learned the hard way i guess. | ||||||||||||||||||||
| ▲ | gib444 7 hours ago | parent | prev | next [-] | |||||||||||||||||||
Ouch. Just one credit card change per account? This is one of those levels of monitoring that only gets put in place after such an event. Eg whole subsystem analysis - the change card feature being used 1000s of times (well, proportional to scale) in 7 hours is a massive red flag | ||||||||||||||||||||
| ||||||||||||||||||||
| ▲ | Fokamul 6 hours ago | parent | prev [-] | |||||||||||||||||||
Cloudflare and any other anti-bot service is only good against people without willpower and knowledge to bypass them. JS can be reversed, you clearly see what data points they use for detection. Anything can be spoofed and it will look like human behavior. And if everything fails, you outsource it to AI - Always Indian :D | ||||||||||||||||||||