A hacker has published code for potent cross-site scripting attacks that he claims go beyond the usual cookie stealing and phishing for users' private details.

Cross-site scripting (XSS) flaws allow attackers to present content under their control in the context of a vulnerable yet trusted site, thus tricking marks into handing sensitive information to miscreants. As well as creating a means to present pop-ups that link to a hacker-controlled site, XSSes can also lead to cookie theft.

Niklas Femerstrand is the hacker who in October 2011 discovered that a debugging tool on the American Express website was vulnerable to an XSS flaw. He developed an "XSS on steroids" script while researching a similar flaw on the website of an unnamed Swedish bank.

"There are common myths about XSSes saying they can only be be used for phishing and cookie harvesting," he said. "My code bursts those myths and is so the first way of transforming a 'non persistent' XSS into a persistent state."

"I have written self-aware code that recognizes its own presence and makes a local infection of its own payload into all links of a website presented to the infected visitor. This way the non-persistent XSS becomes persistent to the infected user. It also follows the user through page forms and sends interesting data to the attacker (usernames, passwords, credit card info)," he added.

Femerstrand last week published his attack code on his website here.

Rik Ferguson, director of security research and communication at Trend Micro, confirmed that the script developed by Femerstrand represents a more potent form of XSS but questioned if it was as innovative as the hacker claims. Ferguson said the technique used by Femerstrand has actually been around for a while and was implemented as a part of beefproject.com.

In response to this point, Femerstrand said: "I've heard of BeEF before but only taken quick looks. I did not know that they had implemented the same technique and didn't find any whitepaper or similar about it. I saw their keylogging feature couldn't separate input fields from each other and instead of logging only what's being posted logs everything typed on the page. I never tried BeEF myself, but personally I think it looks a little bit too bloated."

He said the rationale for publishing his attack code as a way of exposing what he argues is the inadequate security of banking institutions.

"The code was originally written as a proof of concept of how easy it is to rob a bank in modern times," he said. "The way I see it the public is being ridiculed by financial institutions. There's a huge security theater being performed by financial institutions. The public sees the PCI DSS standard and believes that the banks are doing a great job, but in the end of the day the only practical thing coming out of those standards are 'verified by ourselves' stamps of approval and 4 digit numeric PIN codes."

"The modern banks know that when their business fails the government will be all over them with free money from bailouts. I think it's beneficial to expose, not necessarily a whistle-blown 'truth', but the practical meaning of financial security," Femerstrand added. ®