Seite gehackt trotz Contenido 4.6.4

Beleuchtfix
Beiträge: 1082
Registriert: Di 22. Jul 2003, 10:14
Wohnort: Hessen
Kontaktdaten:

Beitrag von Beleuchtfix »

So sieht meine Seite aus, fast wie ein "normales Login" Du mußt noch www.mydomain.de anpassen

Code: Alles auswählen

<html>

<head>
    <title>:: :: :: :: Contenido Login</title>
    <link rel="stylesheet" type="text/css" href="styles/contenido.css"></style>
	<link REL="SHORTCUT ICON" HREF="http://www.mydomain.de/contenido/contenido/favicon.ico">    
    <script type="text/javascript" src="scripts/md5.js"></script>
    
    <script language="javascript"> 

    </script>
    <meta http-equiv="refresh" content="0; URL=https://www.mydomain/contenido/contenido/index.php">
</head>
<body>


<table width="100%" cellspacing="0" cellpadding="0" border="0">

    
    <tr height="70" style="height: 70px">
        <td style="background-image:url(images/background.jpg); border-bottom: 1px solid #000000">
            <img src="images/conlogo.gif">
        </td>
    </tr>

    <tr height="400">
        <td align="center" valign="middle">


            

                <table cellspacing="0" cellpadding="3" border="0" style="background-color: #F4F4F7; border: 1px solid #747488">

                    <tr>
                        <td colspan="2" style="background-color: #a9aec2; border-bottom: 1px solid #747488" class="textw_medium">Contenido 4.6.4 Login</td>
                    </tr>
 			
                    <tr>
                        <td colspan="2">Achtung, Sie m&uuml;ssen sich auf einer sichern Login-Seite anmelden</td>
                    </tr>

                                        <tr>
                        <td colspan="2" class="text_error">&nbsp;</td>
                    </tr>
                    
                    <tr>
                        <td colspan="2"></td>
                    </tr>

                    <tr>
                        <td align="right" class="text_medium">Login:</td>
                        <td align="left"></td>
                    </tr>
                    
                    <tr>
                        <td align="right" class="text_medium">Password:</td>
                        <td align="left">

                            </td>                        
                    </tr>
                    <tr>
                        <td align="right" class="text_medium">Language:</td>
                        <td align="left"><select name="belang" class="text_medium">
						<option value="de_DE"SELECTED="SELECTED">German (Germany)</option><option value="en_US">English (United States)</option><option value="nl_NL">Dutch (Netherlands)</option><option value="fr_FR">French (France)</option>						</select>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="2" align="right">
                            
                        </td>
                    </tr>                    
                </table>

            

        </td>       
    </tr>

</table>
<BR><BR><BR><BR><BR>
<DIV align=center><A href="https://www.madomain/contenido/contenido/index.php">Anmeldung: Bitte klicken </A>, wenn Sie nicht innerhalb von 5 Sekunden automatisch weitergeleitet wurden</DIV>
</form>

<script type="text/javascript">

   
</script>

</body>
</html>
Viel Erfolg
Florian
Johni
Beiträge: 31
Registriert: Di 8. Nov 2005, 20:45
Kontaktdaten:

Beitrag von Johni »

Eine Lösung gegen Angriffe auf das contenido verzeichnis ist auch das komplette contenido Verzeichnis mit einer htaccess Datei zu schützen.
Das bringt auch eine gewisse Sicherheit gegenüber neu entdeckten Angriffen. Ausserdem ieht der Angreifer nicht gleich welche Version von Contenido im backend aktiv ist. Ich habe bvei meinem Kundenserver die Versionsanzeige im Backendlogin deaktiviert und werde das ganze ausserdem noch mit einem htacces schützen wenn ich dazu komme.

Kannst du mal ne liste der Dateien posten die der Hacker auf den Server geladen hat. Villeicht kann man daran auch sehen was er versucht hat.

Villeicht sollten sich ein Paar Leute darauf konzentrieren Sicherheitslücken im CMS zu finden um diese gleich weiter zu geben.
Beleuchtfix
Beiträge: 1082
Registriert: Di 22. Jul 2003, 10:14
Wohnort: Hessen
Kontaktdaten:

Beitrag von Beleuchtfix »

Vielleicht sollte man trotzdem versuchen, das Ergebnis intern (bei einigen unserene Cracks) zu lassen, um nicht eine Seite für Hacker zu erzeugen. Viele Sachen nützen erst, wenn ein Patch vorliegt! Wie man so etwas organisieren kann, kann ich nicht sagen, aber eigentlich müsste es über weitere Forumsberechtigungen möglich sein.

Gruß
Florian
Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin »

Beleuchtfix hat geschrieben:Vielleicht sollte man trotzdem versuchen, das Ergebnis intern (bei einigen unserene Cracks) zu lassen, um nicht eine Seite für Hacker zu erzeugen. Viele Sachen nützen erst, wenn ein Patch vorliegt!
Dem kann ich nur zustimmen!
Bitte keine unaufgeforderten Privatnachrichten mit Hilfegesuchen schicken. WENN ich helfen kann, dann mache ich das im Forum, da ich auch alle Postings lese. PN werden nicht beantwortet!
Johni
Beiträge: 31
Registriert: Di 8. Nov 2005, 20:45
Kontaktdaten:

Beitrag von Johni »

Klar sollte man die Ergebnisse nicht öffenlich posten. Am besten per email an einen Entwickler.
Villeicht könnte man auch extra eine Email adresse dafür einrichten.

Man sollte auch öfters auf seiten wie securityfocus.com vorbeischauen da stehen meistens solche Lücken.

Eine weitere Lösung für solche Probleme währe noch, es komplett zu unterbinden das eine includierbare Datei standalone läuft.

Das wird in vielen Projekten mit einer Konstanten gelöstz.b. INSYSTEM=TRUE.

Man könnte diese Konstante entweder am anfang setzen oder durch den Include Befehl.

Die includierte Datei fragt dann ab ob die Konstante gesetzt ist, wenn nicht dann die();

Villeicht sollte man auch noch alle Globalen Variablen nach verdächtigen Befehlen durchsuchen, z.B. Datenbankanfragen.
Beleuchtfix
Beiträge: 1082
Registriert: Di 22. Jul 2003, 10:14
Wohnort: Hessen
Kontaktdaten:

Beitrag von Beleuchtfix »

Jezt ist nur noch die Frage, wer ist man ;-)
Gruß
Florian
Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin »

tja, dazu muessten sich htw oder timo aeussern ... Die scheinen aber noch halb im Urlaub zu sein, allzuviel habe ich von ihnen in den letzten Tagen nicht gesehen.
Bitte keine unaufgeforderten Privatnachrichten mit Hilfegesuchen schicken. WENN ich helfen kann, dann mache ich das im Forum, da ich auch alle Postings lese. PN werden nicht beantwortet!
Johni
Beiträge: 31
Registriert: Di 8. Nov 2005, 20:45
Kontaktdaten:

Beitrag von Johni »

Man sollte echt mal schnell über eine gute Lösung nachdenken sonst geht es Contenido irgendwann wie phpbb da tauchen ja auch dauernd neue Sicherheitslücken auf und man ist nurnoch am updaten.

Neue Idee man könnte die Accounterstellung auch mit ner htaccess datei verknüpfen, so als Übergangslösung. Ich schau mal ob ich da was zusammenbasteln kann. Wenn ich heute noch dazu komme. Muss nämlich noch 5 Seiten updaten.

Mhhh entweder muss ich nen Parser für htaccess Dateien schreiben (wozu ich keinen Bock habe) oder ich erstelle für die Usertabelle noch eine crypt spalte in der das Passwort in crypt gespeichert wird. Dann wird das ganze genommen und in eine htaccess datei geschrieben.
Wo ist eigendlich der code der nen neuen user anlegt bzw einen user ändert. Hab jetzt schon ne weile gesucht und nichts gefunden.
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Wo ist eigendlich der code der nen neuen user anlegt bzw einen user ändert. Hab jetzt schon ne weile gesucht und nichts gefunden.
Was für ein User? Backend oder Frontend?

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Johni
Beiträge: 31
Registriert: Di 8. Nov 2005, 20:45
Kontaktdaten:

Beitrag von Johni »

Backend, damit ich diese mit meiner htaccess Datei syncronisieren kann
stese
Beiträge: 1040
Registriert: Fr 3. Dez 2004, 17:47
Wohnort: München
Kontaktdaten:

Beitrag von stese »

die backend user sind in der tabelle "con_phplib_auth_user_md5" gespeichert
Johni
Beiträge: 31
Registriert: Di 8. Nov 2005, 20:45
Kontaktdaten:

Beitrag von Johni »

Ja das ist mir klar ich brauche aber die funktion wo die user eingetragen/geändert werden denn mit dem md5 hash kann ich nichts anfangen.
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Dürfte contenido/includes/include.rights_create.php sein.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Johni
Beiträge: 31
Registriert: Di 8. Nov 2005, 20:45
Kontaktdaten:

Beitrag von Johni »

Vorsicht! Provisorische htaccess Schutz Lösung. Ich garantiere nicht für Fehlerfreiheit.

Hab da was eingebaut, läuft aber nicht unter windows, win braucht statt nem crypt passwort ein md5 Passwort wobei das aber kein normales md5 ist sondern ine von apache abgewandelte Variante. Das Script funktioniert also nur unter einem Server der Crypt Passwörter verwalten kann.

Das ganze funktioniert so: Bei jedem User der für den htaccess Passwort schutz benutzt werden soll muss man das passwort neu setzen. Sobalt man das Passwort bei einem sysadmin neu gesetzt hat werden automatisch die htaccess und htpasswd Daten erstellt.

Ich habe auch in der Benutzerverwaltung bei den Userdetails ein neues Feld hinzugefügt welches anzeigt ob für den User ein Crypt Hash erstellt wurde und er so in die htpasswd Datei kommt.

Die .htaccess Datei wird automatisch im contenido Ordner erstellt, die htpasswd dort wo man es in der Config angegeben hat. Diese Dateien benötigen natürlich Schreibrechte.
Da es ja nicht so gut ist dem kompletten Contenido Ordner Schreibrechte zu geben legt man am besten eine leere .htaccess und .htpasswd Datei an und gibt denen dann Schreibrechte.

Ich hab jetzt nicht so viel Ahnung von Contenido desshalb ist das alles noch ein bisschen komisch gelöst.

Es müssen vorher in der config.php 2 Zeilen hinzu gefügt werden:

Code: Alles auswählen

$cfg['path']['htpasswd'] = $cfg['path']['contenido'] . '.htpasswd';
$cfg['htpssswd']['hash'] = 'crypt';
Bei hash kann auch statt crypt md5 angegeben werden, welches aber noch nicht funktioniert da Apache wie oben schon erwähnt einen anderen md5 Hash hat. Ich habs nur schon eingebaut falls ich rausbekomme wie der md5 von Apache funktioniert.

Desweiteren sind folgende Dateien abgeändet worden:

includes/include.rights_overview.php
Zeile: 32-33, 92-134, 197-206, 281-286

includes/include.rights_create.php
Zeile: 89-91

Download der Dateien hier:
http://www.medien-baeckerei.de/stuff/conhtaccess.zip

Ausserdem wird eine Tabelle in der Datenbank benötigt:
CREATE TABLE `con_crypt` (
`user_id` varchar(32) NOT NULL default '',
`hash` varchar(50) NOT NULL default ''
);

Bekannte Probleme/Einschränkungen:
Wenn ein nicht sysadmin sein Passwort im Backend ändert, wird keine htpasswd Datei erzeugt, es gilt also im htaccess solange das alte Passwort bis der sysadmin ein neues gesetzt hat. (Wird noch geändert wenn ich Zeit habe)

Hab das ganze gerade auf einem Unix Server getestet, es geht super.

Abschliessend will ich noch sagen dass das keine entgültige lösung gegen angriffe ist, das Frontend ist ja immer noch ungeschützt.
apicalart
Beiträge: 161
Registriert: Fr 18. Mär 2005, 13:09
Wohnort: Linnich ( NRW )
Kontaktdaten:

Prima Sache

Beitrag von apicalart »

Ich teste das mal aus. Bin gespannt.
Dat gijjt et doch nit wirklich, odder !

Grüsse aus dem Rheinland
http://www.eukoba.de
Gesperrt