Seite 4 von 5

Verfasst: Fr 6. Jan 2006, 23:41
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

Verfasst: So 8. Jan 2006, 18:13
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.

Verfasst: So 8. Jan 2006, 18:27
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

Verfasst: So 8. Jan 2006, 18:30
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!

Verfasst: So 8. Jan 2006, 18:32
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.

Verfasst: So 8. Jan 2006, 19:02
von Beleuchtfix
Jezt ist nur noch die Frage, wer ist man ;-)
Gruß
Florian

Verfasst: So 8. Jan 2006, 19:05
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.

Verfasst: So 8. Jan 2006, 19:21
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.

Verfasst: So 8. Jan 2006, 21:49
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

Verfasst: So 8. Jan 2006, 23:08
von Johni
Backend, damit ich diese mit meiner htaccess Datei syncronisieren kann

Verfasst: So 8. Jan 2006, 23:11
von stese
die backend user sind in der tabelle "con_phplib_auth_user_md5" gespeichert

Verfasst: So 8. Jan 2006, 23:14
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.

Verfasst: So 8. Jan 2006, 23:40
von HerrB
Dürfte contenido/includes/include.rights_create.php sein.

Gruß
HerrB

Verfasst: Mo 9. Jan 2006, 01:46
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.

Prima Sache

Verfasst: So 29. Jan 2006, 13:41
von apicalart
Ich teste das mal aus. Bin gespannt.