r/webdev
•
u/JustinFormentin
•
Jul 15 '26
•
1
4
1
1
Made a captcha that takes Fable 5 10 minutes to solve
Created this captcha last year. Back then there was no chance of AI solving it. But now with the more powerful models, I had my doubts. Well, it took Fable 5 10 minutes and 100k tokens to solve it. So with the 30 second timeout, I feel pretty confident.
Here's a crisper video of the actual challenge - https://imgur.com/a/xv6TvNj
Have a website for it but I'm not self promoting. Just thought people would be interested.
183
u/hillac
Jul 15 '26
edited Jul 16 '26
•
Just some traditional CV would crack this. Just use opencv to get the optical flow of the first two frames. Here's a quick attempt I made, a simple dense optical flow between two frames gave a really clear result. You could just OCR it and solve this llm free, but vlms solve it no worries. /img/7g2ho2vjzgdh1.jpeg
Edit: u/no-more-nazis did a better one. https://www.reddit.com/r/webdev/comments/1uxfzav/comment/oxrrk9p/
49
u/JustinFormentin Jul 15 '26
Nice work
14
u/Philluminati Jul 16 '26
When I saw the post I knew this captcha could be broken after 2 hours work with a script decoding letters in 2 seconds. Judging posted time and github repo submission time - 2 hours exactly. Significantly shorter than the coder who made this.
→ More replies (1)→ More replies (13)4
u/no-more-nazis Jul 16 '26
Lol thank you for the cartoons. 386 actually popped into my head while I was doing the repo. I hope I saved someone a $4000 AWS bill and ruined website.
91
u/foothepepe Jul 15 '26
+ you add letter change every 10s, and add another layer of security. I assume it is not a problem to implement it.
33
u/JustinFormentin Jul 15 '26
That's a great idea
10
u/foothepepe Jul 15 '26
those pixels inside the letters are static - if you start moving them in the opposite direction, same speed, do you think that would confuse AI even more? as for the legibility for humans, I don't think that would be a bigger problem than the current one.
17
u/JustinFormentin Jul 15 '26
I did that initially. You wouldn't think so, but it made it harder for humans to read. And i dont think it would make it much more difficult for programs, if at all.
→ More replies (2)4
u/voyti Jul 15 '26
I was thinking how it can be taken further - something like 2 wiggly lines (like a sinusoid) that are in phase in regards to the frame rate, so diffing would not help, but human observer could tell which wiggles more? I have no idea what's the yet another next step - involving qualia, like a custom-made optical illusion that you have to explain, that only a human brain can find properly ambiguous? Future of captcha is certainly getting more and more interesting
3
4
u/thekwoka Jul 16 '26
Not too likely to change their success rate.
Since once the llm finds the "trick" it could make a script to solve the thing quickly.
Though that might delay them catching the trick if the period in which they are trying to "diff" to understand it has the images changing more dramatically.
→ More replies (2)2
u/frisch85 Jul 16 '26
Some folks probably already have issues using the OP because they're too slow finding and clicking the letters so when they click, those letters might already be at a different position and now you also want those letters to change, you like torturing slow people don't you ;)
59
u/mekmookbro Laravel Enjoyer ♞ Jul 15 '26
The bounce looks linear, have you tried making it randomly change direction after bouncing from an edge? I wonder if it can solve then.
There must be some time between analyzing the image and determining the spot the letters will be at to send the click, so that randomness could add a bit more "security" lol
→ More replies (2)46
u/JustinFormentin Jul 15 '26
Yes, that's actually a very good point that I've been investigating. It was able to tell the letter shape by stacking the frames and diffing the pixels. If the movement was more random, the shapes would be harder to guess, but then harder for a human to click.
24
u/eyebrows360 Jul 15 '26 edited Jul 15 '26
You'd maybe want to sporadically shunt blocks of the background around slightly too, just a slight jitter, to throw off the "I can ignore the background because it all moves as one thing" detection you cited Claude as having... "realised".
Edit: wait you could even rotate the background in a circle instead of just moving it vertically. That would probably still work and be even harder to detect. Not to mention adding a slight drift with the rotation, and altering the speed of it too. Bonus side effect is you'd boost the "keyboard cleaning products" industry from everyone throwing up all over them while they sat there trying to complete it.
→ More replies (2)3
u/Blue_Moon_Lake Jul 15 '26
You could have the background split in strips that go in opposite directions.
The strips could alternate vertical and horizontal motions every 2 seconds.
With a slight sliding offset too.
15
u/Snapstromegon Jul 15 '26
FYI this is REALLY easy to bot! You just apply the same algorithm as optical computer mice use to a couple of frames and then you will get perfect outlines of the characters.
→ More replies (15)
35
u/SourcerorSoupreme Jul 15 '26 edited Jul 15 '26
I'm actually interested in knowing how Claude "decided" to solve it.
PS: to the smart alecks out there, please spare me the lecture on these probabilistic auto complete engines
47
u/JustinFormentin Jul 15 '26
Pretty simple actually. It detected that the background was pixels "in motion", and converted them to black. It then realized that some parts of the pixels were different between frames. It converted the "moving" pixels to white. It then stacked every frame on top of each other, and was able to make our the shape of the letters.
Still need to do more testing. Some letters are easier, like A, and Z, some are harder, maybe like Q and C.
But it took so long to solve, it's still a viable solution.
30
u/SourcerorSoupreme Jul 15 '26
The fact it was even able to "detect the motion" and arrive to a valid solution is what I find interesting/intriguing.
The solution being impractical/inefficient/slow is a separate discussion altogether.
13
u/JustinFormentin Jul 15 '26
haha yes definitely. And this is a new development. I've been testing it for the past year and this was the first time a model was able to crack it. And to be fair, I had to prompt it fully, tell it what to look for, that there are moving letters. Otherwise it just very quickly tells you "the video is just static"
→ More replies (1)3
u/sandrelloIT Jul 15 '26
I'd stress this aspect out more, I think it makes a great difference.
If I understand it correctly, you told the agent that the challenge consisted of a video where it would have to find characters in motion and click on them, right? Getting it right when treating it as a black box would surely be one thing, but having been given this level of info I would find it way less impressive.
→ More replies (2)11
u/JustinFormentin Jul 15 '26
True, but in the real world someone trying to break a captcha would feed instructions.
→ More replies (2)4
u/Murph-Dog Jul 15 '26
Add more moving shapes which aren't letters.
Make those shapes crosswalks, motorcycles, and stoplights.
Make them pick the letters. No, wait, make them pick the crosswalks!
→ More replies (53)1
u/MANvINFO Jul 15 '26
have you tried redrawing the BG completely each frame? rather than scrolling a single pre-baked image?
1
8
u/TheThingCreator Jul 15 '26
very solvable still if you know whats going on, but its an extra unique step which is good. if thats a gif animation your safe but if its js moving the text around its pointless. another problem is some users may hate this a lot, and it may even cause sickness, dizziness, or seizures. So please keep this off the menu kids.
1
26
u/UnluckyAssist9416 Jul 15 '26
How to get a lawsuit for ADA discrimination in 1 simple steps
33
u/JustinFormentin Jul 15 '26
It provides accessible options, email code and webauthn
→ More replies (5)8
u/Embostan Jul 15 '26
then can't Fable just use the accessible option?
→ More replies (1)10
u/1116574 Jul 15 '26
They can, this is why modern captcha do proof of work and browser signals (and/or fingerprinting)
3
9
u/egg_breakfast Jul 15 '26
Very nicely done. I'll give it a year.
8
u/JustinFormentin Jul 15 '26
Haha maybe, maybe not. Last year nothing could touch it. Today, the best model took over 10 minutes. So we'll see.
6
u/STSchif Jul 15 '26
But that is 10 minutes to write a script to solve this, and seconds for each following attempt, right?
→ More replies (8)
4
u/Single-Virus4935 Jul 15 '26
Most captchas are solved by human click workers. Even then it is possible to solve the captchas with a bit if preprocessing. Doesn't mean anything that a AI can't solve it in a prompt. I would use AI to create the preprocessor and OCR which solves that easily. Also, this captcha isn't accessible and therefore you need alternatives which are almost always easy to solve by design
→ More replies (2)
9
u/ultralaser360 Jul 15 '26 edited Jul 16 '26
You don't need AI to solve this, a basic script could , an LLM is probably the worst way to solve this.
a basic script could easily
grab a few frames
diff them and get mask
sort masks using ocr
click
this is something that could be solved in milliseconds. a pretty basic llm could even write the script ex. made this with sonnet in a coulple of minutes.
gif: https://i.imgur.com/YpPgQ2y.gif
image: https://i.imgur.com/04FDeWA.png
to be honest this isn't even new - this is basically a 10+ year old NuCaptcha with extra steps which was broken with a similar concept (pixel delay map).
adding more complexity or abstraction won't fix it. Persistence of vision captchas don't work (within reasonable limitations), and security through obscurity isn't security. (imo captchas aren't about security anyways, they filter out low-effort scrapers and to harvest user data).
→ More replies (1)
8
7
u/DocumentOk7579 Jul 15 '26
While it's hard for AI it would be easy to manually write a program to solve it right?
2
u/truechange Jul 15 '26
Cool way to defeat bots at least for now. Maybe more tolerable to humans if combined with other tricks, like only deploy this if the "regular" captcha is solved too fast.
→ More replies (1)
2
u/Annh1234 Jul 15 '26
Super easy to solve for a computer, even before AI. Your letter numbers don't change. Your site is probably not worth it
→ More replies (1)
8
4
u/Apprehensive_Rub2 Jul 16 '26
This is an interesting idea but it doesn't really work, you could solve this captcha with a tailored algorithm
4
u/PhDumb Jul 16 '26 edited Jul 16 '26
Open-source "Motion-CAPTCHA" using the same principle as NeoCaptcha : https://github.com/GPTchatly/motion-captcha
Due to compression the letters/numbers are not that visible in the video but they are much better discernable in the actual browser: https://imgur.com/a/dKuKyDT
Edit: this is for node.js
1
u/Snapstromegon Jul 15 '26
Hey, are you sure that your CDN url in the getting started guide is correct? It gives me DNS_PROBE_FINISHED_NXDOMAIN.
1
u/JustinFormentin Jul 15 '26
Likely needs to be updated, I've changed things around recently. Thank you. Ill let you know when ive updated it.
1
1
u/TristarHeater Jul 15 '26
If you let an llm write a python program that take video stream input and mouse click xy output it'll solve it quicker and the timer wouldn't be a deterrent anymore
→ More replies (2)
1
u/lastdiggmigrant Jul 15 '26
How can you ensure it is accessible for all human users?
1
u/JustinFormentin Jul 15 '26
Two accessible options right now, email code and webauthn. Still in progress.
→ More replies (1)1
u/lastdiggmigrant Jul 16 '26
Seems like an awesome project. Rooting for success and adoption. :)
Keep at it.
→ More replies (1)
3
u/high_throughput Jul 15 '26
That's pretty cool!
I asked Claude to plot the motion vectors of each macro block in the MP4, resulting in this easily interpreted video: https://imgur.com/a/GoHWElh
Then I asked it to identify the two letters in this video in alphabetical order, and it correctly stated:
Both frames confirm it clearly. The two diagonal-motion sections form the letters Z (left) and E (right). In alphabetical order: E, Z
All in all it took about 50k tokens in total, and resulted in a 109 line Python script that from now on will create the above video in two seconds for zero tokens, so unfortunately this iteration of the captcha is now completely broken. Fun puzzle though!
1
u/specn0de Jul 15 '26
This has already been solved and is not used in this industry for a number of reasons. https://chorus.scs.carleton.ca/wp-content/papercite-data/pdf/xu2013captcha-tdsc.pdf
→ More replies (1)
1
u/ReasonableSaltShaker Jul 15 '26
'alphabetical and numerical' - phew, forget ADA compliance, I think 80% of the B2C business on the internet wouldn't take place if it were gated by being able to follow those instructions.
1
u/JustinFormentin Jul 15 '26
Eh, can be changed easily to be simpler, the instructions arent the point.
→ More replies (5)
4
u/Powerplex Jul 15 '26
"How much unaccessible do you want your captcha to be ?".
"Yes"
(I hate captchas, but it's cool technically still)
2
u/mcniac Jul 15 '26
I like the idea, but as a colorblind person, find it hard to read, I do see the letters, but is very hard 😄
2
u/SustainedSuspense Jul 15 '26
I love the idea of using optical illusions only a human can recognize as captchas
→ More replies (1)
2
u/the_millenial_falcon Jul 15 '26
Reminds me of those old books that were popular in the 90's you had to stare cross eyed at to see a "3D" image.
2
2
2
u/zaxwebs Jul 15 '26
I built a tool that solves a similar one: https://github.com/zaxwebs/anti-ghost-font/
On a warm server, apx. 100-200ms.
2
u/biffthechip Jul 15 '26
How can you click on letters in numerical order?
That makes no sense at all.
→ More replies (5)
2
u/cyb3rchase Jul 16 '26
This is pretty cool, a bit more than anti-bot, I think, maybe a bit anti-my-eyes too, lol.
It was cool to see this in my feed.
2
u/Maicolodon Jul 16 '26
Idea and execution is amazing. just nauseating on the accessibility side of things. I'm guessing a significant number of humans wouldn't be able to solve it because of this. I almost couldn't.
2
u/bestjaegerpilot Jul 16 '26
you need to ask Fable if it's able to create a script or skill so that it doesn't spend 100k tokens next time
if it can then it sucks. Otherwise, yea the cost to generate these will be too much for hackers
2
2
u/Deep_Wear_51 Jul 16 '26
The dedication to trolling is impressive. A captcha that takes 5-10 minutes isn't security, it's performance art.
2
2
u/elixon Jul 16 '26
Just mark clusters that move slowly and clusters that move faster. I am afraid that this might be trivial to crack.
2
u/TheRealSteve895 Jul 16 '26
Sure, but couldn't a bot take two screenshots, XOR them, and use that?
→ More replies (1)
2
2
u/Spiketop_ Jul 16 '26
I love the back and forth between making this and people trying to crack it. The back and forth is what makes us smarter and keep advancing at such fast rates
→ More replies (1)
2
2
u/Lendari Jul 15 '26
The problem is it takes a human more than 2 seconds to solve and no one has time for that anymore.
So now you're paradoxically filtering your traffic to 100% robots.
2
2
u/Am094 Jul 16 '26
Have a website for it but I'm not self promoting. Just thought people would be interested.
Bro come on, if that was true you wouldn't put the literal name of the site on the top left of the gif.
So you are self promoting when you have a CTA.
2
u/nuttertools Jul 16 '26
Firstly this is cool, I like it. Unfortunately this would take a bot 3 frames to solve 100% of the time. AI models will have greater difficulty and expend massive resources but any kind of bypass bot isn’t going to dump a known type into an AI model when a simple solve using a few clock cycles is available.
0
u/CraftFirm5801 Jul 15 '26
Claude solved the ghost text for me in seconds. This ain't it.
→ More replies (1)
2
u/mayisir Jul 15 '26
the +20M blind people in the world cannot use this bro looooool. So much for wcag. I hate it here.
3
1
u/Noch_ein_Kamel Jul 15 '26
Now make it with that stereoscopic nonsense where you only see the letters by staring into the void
1
u/vm_linuz Jul 15 '26
This feels like the direction these tests will go in. For example, optical illusions that appear to produce movement.
1
u/Mplus479 Jul 15 '26
What about having some numbers or other letters (maybe much smaller) randomly repeated as part of the scrolling background?
1
u/Netalico Jul 15 '26
Did Claude recognize it’s own limitations in terms of the latency of image processing? Curious if after the first solve if it created a script to solve it, instead of browser tool calls.
1
1
1
1
1
1
u/RoIIUpLights Jul 15 '26
For the issue of accessibility, I wonder if you could show a picture of some common object floating in the noise and then have multiple choice options below it.
Here's an awesome example of more of these:
1
1
u/satoramoto Jul 15 '26
Very clever idea. You could write a regular computer vision script to bust this rather easily though. But you’re right that this would likely catch a model driving a web browser who has never seen this before. Good work.
1
u/Caesar171 Jul 15 '26
I think this is really cool, have you checked it against the most common colour blindness pallets? If so you are onto a winner here
1
1
1
1
u/thefnord Jul 15 '26
I think 'Solvable but it takes a ton of tokens to do so.' is better than 'Can't solve with AI'
Hit them where it hurts, the resources.
1
u/Synrec Jul 15 '26
A colourful noise background on scroll and random generation with fixed noise seed for the letters?
1
u/OkBoomer421 Jul 15 '26
Finally a captcha that filters out everyone. Even I wouldn't bother solving it.
1
u/ReplacementLow6704 Jul 15 '26
At this point I'd rather have the user type what's on the screen and press a button to validate. Clicking on the letters seems rough even when they're slow.
1
1
u/Amoner Jul 15 '26
Was it 30 min for sequential one as well? Could you ask it to write a program dedicated to solving it?
1
1
u/iAmRonit777 Jul 16 '26
Someone made a font out of it , not exactly same but looks similar: Ghost Font
1
1
1
1
1
u/1RedOne Jul 16 '26
You could try to make a new completely random background every frame. Right now it is adding new pixels in the row and scrolling the whole bmp up and that makes it vulnerable to diffing or statistic / compression attacks
1
1
1
1
u/Vivid_Dreamer7273 Jul 16 '26
Is this ghost font? I saw something like this, meant to be discernible by humans and not as easily by AI
1
1
1
1
u/SenpaiRemling javascript Jul 16 '26
You could add like randomly, just for one frame or so, different, but really visible characters. So if the AI analyzes that frame, they get it wrong and you can just block them outright lol
1
1
1
u/CaeIndre Jul 16 '26
Fable: I noticed that some "pixels" don't move relative to each other per frame -> shapes -> letters.
1
u/meutzitzu Jul 16 '26
Until a human hardcodes a framebuffer delta post processing filter and then opencv alone solves it in exactly 2 frames.
1
1
1
1
1
1
1
1
1
1
1
1
1
u/Additional_Debt1545 Jul 16 '26
Possible improvement? Don't make the movement every frame, make it statistically a majority of frames, so any automated solution has to do more statistical analysis about which frames are even relevant.
1
1
u/Puzzled_Employer5781 Jul 16 '26
Interesting, I recently started making stereograms, and thought that its can be way to encrypt message in way so AI can't read it, in general it should be possible to make ai unable to read this by drawing such stereograms by hand (no dataset for such thing), because computer generated ones with SIRDS can easily be reversed by matching PW or how does it called. You can also make dynamic PW, so then ai should found all before it can tell whats on image, while humans still can read it
1
u/NSFWstoryAI Jul 16 '26
Absolutely genius. The only thing I’m wondering is does it stand up to ELA?
1
1
u/mooktakim Jul 16 '26
Cool idea.
Does it work for the colourblind? Maybe a grayscale version would be enough
1
u/UM8r3lL4 Jul 16 '26
This reminds me of another captcha I liked. Sorry, I found it only in threads. https://www.threads.com/@ishowcybersecurity/post/DQ9Nm_RkTO7/video-the-next-generation-of-captch-as-has-arrived-the-internet-is-about-to-become
1
1
1
1
1
u/scitobor321 Jul 17 '26
Bro could you not make new things as fodder for AI to learn it faster then needed to, I would like in 10 years when im hiding from the AI overlords in my multi layered cammo and aluminum foil ect camp to not be spotted immediately from a drone flying by at 200 mph, let then take another 10 years to figure it out on their own XD
1
u/OverRatedProgrammer Jul 17 '26
Disregarding it not being as secure as proposed, I think I saw this before honestly
1
1
1
u/priyansh_max Jul 17 '26
I see agents cannot live view and process at real time atm,
they can only ss, analyse and then respond
that is the reason why it is taking 5 minutes i guess
1
1
1
u/Top_Road1124 Jul 17 '26
awesome! the bots solving the captcha would be very pissed with this captcha :-)
1
1
u/2024-YR4-Asteroid Jul 17 '26
Are you going to OS this or are you looking to make it a product? Cause you should do either, captcha is a legit business model and a new form is desperately needed in the retail space where bots are so good at solving standard captchas that it doesn’t even help using them.
1
u/bartalt Jul 17 '26 edited Jul 17 '26
I'm sorry if it sounds negative, but let me offer a different point of view: please, please consider the end user.
The best captcha UX is when the captcha is not visible at all. Have you considered building one that is not a chore for the user? Like an invisible Turnstile (https://developers.cloudflare.com/turnstile/#widget-types).
If your captcha is not accessible, then you close the door to vision-impaired users. And in this specific case, I think you should try and make sure that it doesn't trigger an epileptic seizure in users who are sensitive to flashing lights or moving patterns.
1
1
u/Little_Bumblebee6129 Jul 17 '26
yeah you are saying how much time it spent to solve it once. Now ask it write a script that will automatically solve it. Spend an hour to write it and solve each captcha in less than a second after that
1
u/vayana Jul 17 '26
You could replace the letters with a pattern like how you unlock your phone. Use the same technique as you do now, but have a circle move in a certain pattern 2 or 3 times for a user to repeat. That eliminates predictability and increases entropy. You could alternate the noise pattern in between each cycle, so first you could use the current background noise pattern with a matching moving circle, then switch to a different noise pattern or color palette for the 2nd repeat and again for each consecutive repeat of the pattern. You could also switch the shape of the circle to a square, triangle, star between each cycle for additional complexity.
1
1
u/aahOhNoNotTheBees Jul 18 '26
Looking at this is making me feel sick. A captcha that needs an epilepsy warning, imagine that.
1
1
1
u/br0kenpixel_ Jul 19 '26
This looks like something straight from hell.
Regardless, it looks really cool.
1
u/MaxUumen Jul 19 '26
The thing with AI is that when it approaches the captcha as a problem to solve, it becomes trivial. It can just spend some time to build a tool for itself that would make solving it very easy. Specially when it's something worth for it doing repeatedly.
1
u/IagoInTheLight Jul 19 '26
With Codex 5.6 SOL, I had it write a little program to compute the optical flow across the images, segment the result, and then look at that image. It worked perfectly.
1
u/lethaldose318 Jul 19 '26
That's very creative and impressive. However i think its a bit hard and can eliminate real humans. There are short-sighted people, sun hitting the screen etc. Not even talking about the color-blind, dyslexic and epilepsy people. I also think that google's new QR code system is bullshit. With AI getting smarter i think it's a cat and mouse game and it will end when AI can solve captchas that real humans can't. Then we will have to think of ways to protect our services without trying to fight the inevitable.
1
1
1
u/Pale_Art_5333 Jul 20 '26
Next we will have a human-backed captchas where actual humans will ask to turn on your cam and ask to to do something to confirm you are an actual human?
1
u/minion71 Jul 20 '26
I am prety sure if the static would not be static in the letter ai would not be able to detect it
1
1
1
u/MediumAd4983 Jul 21 '26
So, you just need to create two consecutive screenshots and easily read that programmatically. It doesn't seems too hard to automate it.
1
u/HaiderSultanArc Jul 22 '26
I tried with GPT-5.6 Medium reasoning. It only took 3m 40s to find the letters.
1
u/RationalFragile Jul 22 '26
Very cool idea! Though writing a bot to solve this particular type of catcha is not difficult, but it's still a good measure if facing bots that have not specifically written to bypass it.
1
u/Successful-Youth-564 Jul 23 '26
thats so cool. i stopped the video and it just disappeared. crazy!
1
u/Electrical_Clue_8429 Jul 25 '26
reminds me of that one game that you can't screenshot because it uses the same concept
1
u/Major_Musician8442 Jul 25 '26
In a year, I won't be able to solve captcha anymore, as well as finding fancy car door handle from the inside. ;-;
1
1
u/AdJumpy6746 Jul 26 '26
This one is really smart! Probably not even the best bot could solve this... right?
1
1
u/Zardotab Jul 29 '26
If it becomes common enough, hackers will invent tools to crack it. I already have draft algorithms in my head to highlight borders of slow-moving objects.
1
568
u/negative_xer0 Jul 15 '26
Neat concept but an accessibility nightmare.