zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden Dringend: Werde ich gehackt?

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 07.03.2016, 08:04
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 04.11.2015
Beiträge: 191
David1997 befindet sich auf einem aufstrebenden Ast
Standard Dringend: Werde ich gehackt?

Ich habe auf meiner Website ein Kontaktformular, geschrieben in PHP. Die Daten werden mit mail() an meine E-Mail-Adresse gesendet.

Nun erhalte ich schon seit 6:30 Uhr E-Mail, da jemand den Versand auf meiner Website anstößt. So sehen die Mails aus:

Nachricht: 1
Name: 1
E-Mail: 1
Rufnummer: 1
Kontaktid: -1'

Es wird immer überall eine 1 eingegeben nur in einem Feld wird -1' eingegeben. Ist das ein Hacker?
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 07.03.2016, 08:44
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.729
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

"Ein Hacker" ist das höchstwahrscheinlich nicht, sondern ein Skript (das wohl ein Hacker benutzt) das versucht Schwachstellen zu finden. Wobei es aber auch ein "Streich" sein kann, dass vielleicht jemand dein Formular entdeckt hat und bemerkt das es ungeschützt ist.

Mehr sagen läßt sich nicht, da Informationen fehlen. Es kann also durchaus sein, dass du gehackt worden bist und noch viel mehr passiert.
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 07.03.2016, 08:46
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 04.11.2015
Beiträge: 191
David1997 befindet sich auf einem aufstrebenden Ast
Standard

Vielen Dank für deine Antwort. Von SQL Injections habe ich ja schon gehört, gibt es aber auch (reine) PHP Injections? Das Script greift ja nicht auf meine DB zu, nur PHP-Code.
Mit Zitat antworten
  #4 (permalink)  
Alt 07.03.2016, 09:03
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.729
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Ich habe nichts von SQL Injections geschrieben.

Es gibt auch andere Möglichkeiten eine System zu hacken. Die meisten Hacks nutzen Schwachstellen in einer Software aus, um ungewollte Dinge zu machen - bei dir kann es auch sein, dass Spammails verschickt werden oder das ein Angreifer versucht komplett in dein System einzudringen und die Kontrolle über den Server zu bekommen oder oder oder ....

Wie gesagt, ohne Informationen was du machst kann das keiner sagen.
Mit Zitat antworten
  #5 (permalink)  
Alt 07.03.2016, 09:32
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 04.11.2015
Beiträge: 191
David1997 befindet sich auf einem aufstrebenden Ast
Standard

Mein PHP-Code ist folgendermaßen:
PHP-Code:
<?php
$zieladresse 
'beispiel@mayer-müller';
$absenderadresse 'beispiel@mayer-müller';
$absendername 'Meine Homepage';
$betreff 'Kontaktformular';
$urlDankeSeite '/HomeFiles/Bestaetigung.html';
$trenner ":\t";

if (
$_SERVER['REQUEST_METHOD'] === "POST") {

    
$header = array();
    
$header[] = "From: ".mb_encode_mimeheader($absendername"utf-8""Q")." <".$absenderadresse.">";
    
$header[] = "MIME-Version: 1.0";
    
$header[] = "Content-type: text/plain; charset=utf-8";
    
$header[] = "Content-transfer-encoding: 8bit";
    
    
$mailtext "";

    foreach (
$_POST as $name => $wert) {
        if (
is_array($wert)) {
            foreach (
$wert as $einzelwert) {
                
$mailtext .= $name.$trenner.$einzelwert."\n";
            }
        } else {
            
$mailtext .= $name.$trenner.$wert."\n";
        }
    }

    
mail(
        
$zieladresse
        
mb_encode_mimeheader($betreff"utf-8""Q"), 
        
$mailtext,
        
implode("\n"$header)
    ) or die(
"Die Nachricht konnte leider nicht versendet werden.");
    
header("Location: $urlDankeSeite");
    exit;
}

header("Content-type: text/html; charset=utf-8");

?>
Kannst du da irgendeine Schwachstelle erkennen?
Mit Zitat antworten
  #6 (permalink)  
Alt 07.03.2016, 09:51
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.729
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Scheint i.O. zu sein.

Das einzige Problem ist, dass das Skript automatisiert aufgerufen werden und dich belästigt kann.

Da hilft es, zum einen ein leeres Feld einzubauen das nicht befüllt werden darf und mit CSS ausgeblendet wird und eine Zeitkontrolle, in dem du den timestamp im Formular mitschickst und beim abschicken kontrollierst. Damit erwischst du nahezu 100% aller bots.
Mit Zitat antworten
  #7 (permalink)  
Alt 07.03.2016, 10:01
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 04.11.2015
Beiträge: 191
David1997 befindet sich auf einem aufstrebenden Ast
Standard

Hallo protonenbeschleuniger,
vielen Dank für deine Einschätzung.
Das mit dem leeren, ausgeblendeten Feld ist aber eine gute Idee. Das werde ich machen.

Was genau meist du mit der zweiten Idee. Meinst du, wenn das Formular im kurzen Intervall abgesendet wird, dass das dann abgewiesen wird? Ist da nicht eine Session ID notwendig?

Noch eine Frage:
Ich habe noch einige SQL-PHP-Scripts. Ich habe dort natürlich Prepared Statements verwendet. Wenn ich den Code hier posten würde, könntest du dann auch dazu deine Einschätzung bezüglich Sicherheit sagen?
Mit Zitat antworten
  #8 (permalink)  
Alt 07.03.2016, 10:44
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.729
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von David1997 Beitrag anzeigen
Was genau meist du mit der zweiten Idee. Meinst du, wenn das Formular im kurzen Intervall abgesendet wird, dass das dann abgewiesen wird? Ist da nicht eine Session ID notwendig?
Nein, aber das wäre auch eine Möglichkeit.
Ja, es geht um den Interval, ist dieser zu kurz oder zu lang, dann sollte keine Mail verschickt werden.


Zitat:
Zitat von David1997 Beitrag anzeigen
Noch eine Frage:
Ich habe noch einige SQL-PHP-Scripts. Ich habe dort natürlich Prepared Statements verwendet. Wenn ich den Code hier posten würde, könntest du dann auch dazu deine Einschätzung bezüglich Sicherheit sagen?
Wenn du wirklich konsequent prepared Statements nutzt, dann ist dieser Aspekt damit abgedeckt.

Letztlich sind die Probleme meist Anwendungen, die auf irgendeiner Ebene Zugriff auf das System erlauben. Bei selbstprogrammierten Sachen sind es häufig Datei- oder Pfadzugriffe die nicht genügend abgesichert sind. Die Datenbank ist oft nur ein Problem weil sie potentiell zerstörbar ist oder der Angreifer sich Adminzugang zur Anwendung verschaffen kann (und da kommt es dann darauf an, was die Anwendung macht).
Mit Zitat antworten
  #9 (permalink)  
Alt 07.03.2016, 11:05
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 04.11.2015
Beiträge: 191
David1997 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von protonenbeschleuniger Beitrag anzeigen
Nein, aber das wäre auch eine Möglichkeit.
Ja, es geht um den Interval, ist dieser zu kurz oder zu lang, dann sollte keine Mail verschickt werden.
Hast du zu deiner Idee mal einen Link?

Zitat:
Zitat von protonenbeschleuniger Beitrag anzeigen
Wenn du wirklich konsequent prepared Statements nutzt, dann ist dieser Aspekt damit abgedeckt.
Ja, ich nutze in jedem Script immer Prepared Statements. Da ich allerdings neu auf den Gebiet PHP/MySQL bin weiß ich nicht immer, ob ich das auch richtig angewendet habe.


Zitat:
Zitat von protonenbeschleuniger Beitrag anzeigen
Letztlich sind die Probleme meist Anwendungen, die auf irgendeiner Ebene Zugriff auf das System erlauben. Bei selbstprogrammierten Sachen sind es häufig Datei- oder Pfadzugriffe die nicht genügend abgesichert sind. Die Datenbank ist oft nur ein Problem weil sie potentiell zerstörbar ist oder der Angreifer sich Adminzugang zur Anwendung verschaffen kann (und da kommt es dann darauf an, was die Anwendung macht).
Das verstehe ich nicht ganz. Was ist mit "Anwendungen" gemeint? Meinst du damit einfach nur die Scripts?

Da ich die Scrips ja selbst programmiere: Was meinst du mit nicht genügend gesicherten Datei- oder Pfadzugriffen? Meinst du damit einfach nur die Rechte, also zum Beispiel "644"?
Was ist der Unterschied zwischen einen Dateizugriff und einem Pfadzugriff?

Viele Grüße,
David.
Mit Zitat antworten
Sponsored Links
  #10 (permalink)  
Alt 07.03.2016, 11:34
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.729
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von David1997 Beitrag anzeigen
Hast du zu deiner Idee mal einen Link?
Nö. Es ist aber einfach nur eine Subtraktion. Der Timestamp wird mit dem Formular in einem versteckten Element verschickt und wenn das Formular absendet wird, kannst du auf dem Server den Unterschied berechnen.



Zitat:
Zitat von David1997 Beitrag anzeigen
Das verstehe ich nicht ganz. Was ist mit "Anwendungen" gemeint? Meinst du damit einfach nur die Scripts?
Im Prinzip ja.

Zitat:
Zitat von David1997 Beitrag anzeigen
Da ich die Scrips ja selbst programmiere: Was meinst du mit nicht genügend gesicherten Datei- oder Pfadzugriffen? Meinst du damit einfach nur die Rechte, also zum Beispiel "644"?
Was ist der Unterschied zwischen einen Dateizugriff und einem Pfadzugriff?
Naja, jede Datei liegt in einem Pfad und um Zugriff auf eine Datei zu haben musst du auch Zugriff auf den Pfad haben. Die Datei ist das Ziel und der Pfad der Weg. Die Rechte sind dabei nur ein Aspekt. Wichtiger ist es z.b. das du keine relativen Pfadangaben zulässt.
Mit Zitat antworten
Sponsored Links
Antwort

Stichwörter
hacker, html, php, sicherheit

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Brauche dringend Hilfe zu einem CSS Grundgerüst! Boof CSS 9 23.04.2010 18:33
Navi menü nicht am platz - dringend aKkrus CSS 1 02.11.2009 12:50
Tabelle in DIV umwandeln - Dringend Hilfe gesucht! gnrmarcel CSS 2 12.11.2006 14:00
Bräuchte dringend Hilfe! tobiasbeisel CSS 1 08.03.2006 09:00
Dringend: ReDesign meines Shops... Brauche Euer Feedback brakai295 Site- und Layoutcheck 18 10.10.2004 15:41


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:24 Uhr.