Mijn probleem:
Meerdere van mijn websites zijn de afgelopen tijd gedefaced of gewijzigd, in totaal op dit moment 5 stuks de afgelopen maand (meerdere malen). Het lijkt me geen gerichte aanval op mijn bedrijf, maar een scriptkiddie attack die gewoon willekeurig sites zoekt met zwakheden.
Iets meer over mij/mijn bedrijf:
Samen met een vriend van mij heb ik een bedrijf dat o.a. websites creëerd. Ikzelf doe niets technisch, dat doet mijn vennoot. We nemen onze hostingruimte af van een hostingbedrijf (domeinbalie), wijzelf zijn slechts reseller.
Door wie worden de hacks uitgevoerd?
Verschillende partijen, waarom ik dit denk? Er worden steeds verschillende dingen gedaan.
De een verwijderd de complete website en verwijderd de database, de ander plaatst een iframe dat probeerd malware te installeren, de ander veranderd alleen de index. Bepaalde sites kan ik terugvinden op een site waar gedefacede sites worden gepost (zone-h.org, nu offline zie ik). Ook zie ik daar andere websites opstaan die op dezelfde server bij mijn host staan (maar niet van mij zijn), dit vind ik erg vreemd en zou duiden op zwakheden in de beveiliging van de server.
Waar zouden de zwakheden kunnen zitten?
Ik was eerst 100% ervan overtuigd dat dit bij onze host zat, aangezien sommige sites totaal anders in elkaar zitten, geen CMS hebben, verschillende soort beveiliging, enz. Maar aangezien er nu ook een site op onze tweede host (transip) is gewijzigd ga ik hier niet meer van uit.
Wat zijn dan gevoelige punten? Dit zou een zwakheid kunnen zijn:
Het contactformulier
- is de afhandeling en errorcontrole wel correct?
Form code
Functie MailSend
Navigatie
- de standaard index.php die dynamisch inhoud inlaad, de variabele $page zorgt hiervoor.
TinyMCE
- Heb gezien dat hier problemen mee zouden kunnen zijn en dit direct op verschillende sites uitgeschakeld of in een map geplaatst die via .htaccess afgeschermd is, is dit voldoende?
Achterliggende serversoftware?
Tips worden zeer gewaardeerd, zit een beetje met het handen in het haar of ik alles moet verhuizen naar een andere host. Als het advies is om een professioneel bedrijf naar de beveiliging te laten kijken dan snap ik dat, ookal is dat niet echt financieel haalbaar is het als het moet gewoon maar de harde realiteit.
Ik snap dat ik geen van mijn eigen sites mag posten en zal dit dus niet doen, als mensen mij willen pm-en om ze te testen op SQL-injections e.d. zal ik uiteraard de URLs sturen.
Meerdere van mijn websites zijn de afgelopen tijd gedefaced of gewijzigd, in totaal op dit moment 5 stuks de afgelopen maand (meerdere malen). Het lijkt me geen gerichte aanval op mijn bedrijf, maar een scriptkiddie attack die gewoon willekeurig sites zoekt met zwakheden.
Iets meer over mij/mijn bedrijf:
Samen met een vriend van mij heb ik een bedrijf dat o.a. websites creëerd. Ikzelf doe niets technisch, dat doet mijn vennoot. We nemen onze hostingruimte af van een hostingbedrijf (domeinbalie), wijzelf zijn slechts reseller.
Door wie worden de hacks uitgevoerd?
Verschillende partijen, waarom ik dit denk? Er worden steeds verschillende dingen gedaan.
De een verwijderd de complete website en verwijderd de database, de ander plaatst een iframe dat probeerd malware te installeren, de ander veranderd alleen de index. Bepaalde sites kan ik terugvinden op een site waar gedefacede sites worden gepost (zone-h.org, nu offline zie ik). Ook zie ik daar andere websites opstaan die op dezelfde server bij mijn host staan (maar niet van mij zijn), dit vind ik erg vreemd en zou duiden op zwakheden in de beveiliging van de server.
Waar zouden de zwakheden kunnen zitten?
Ik was eerst 100% ervan overtuigd dat dit bij onze host zat, aangezien sommige sites totaal anders in elkaar zitten, geen CMS hebben, verschillende soort beveiliging, enz. Maar aangezien er nu ook een site op onze tweede host (transip) is gewijzigd ga ik hier niet meer van uit.
Wat zijn dan gevoelige punten? Dit zou een zwakheid kunnen zijn:
Het contactformulier
- is de afhandeling en errorcontrole wel correct?
Form code
PHP:
1
2
3
4
| if(isset($_POST['verzenden'])) { MailSend($db_data, $naam, $email, $telefoon, $opmerking, $sitemail); } |
Functie MailSend
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
| function MailSend($db_data, $naam, $email, $telefoon, $opmerking, $sitemail) { global $boodschap; $naam = strip_tags($naam); $naam = addslashes($naam); $email = strip_tags($email); $email = addslashes($email); $telefoon = strip_tags($telefoon); $telefoon = addslashes($telefoon); $opmerking = strip_tags($opmerking); $opmerking = addslashes($opmerking); $sitemail = strip_tags($sitemail); $sitemail = addslashes($sitemail); $message = "BERICHT VERZONDEN VANAF HET CONTACTFORMULIER OP DE WEBSITE:\n\n\nNaam: ". $naam."\nE-MAIL: ".$email."\nTelefoonnummer: ".$telefoon."\n\nBericht:\n\n".$opmerking; if($naam != "" && $email != "" && $telefoon != "" && $opmerking != ""){ // Goed ingevuld formulier $naam = addslashes($naam); $telefoon = addslashes($telefoon); $opmerking = addslashes($opmerking); $headers .= "From: ".$naam." <".$email.">" . "\r\n"; $onderwerp = "Bericht via website"; mail($sitemail, $onderwerp, $message, $headers); $boodschap = "<script language='JavaScript' type='text/javascript'> <!-- alert(\"Hartelijk bedankt! Uw bericht werd succesvol verzonden...\"); // --> </script>"; }else{ // Niet goed of onvolledig ingevuld formulier: $boodschap = "<script language='JavaScript' type='text/javascript'> <!-- alert(\"Het bericht kon niet worden verzonden. U heeft bepaalde velden foutief of onvolledig ingevuld...\"); // --> </script>"; } } |
Navigatie
- de standaard index.php die dynamisch inhoud inlaad, de variabele $page zorgt hiervoor.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
| <div id='inhoud_links'> <!-- Start inhoud_links --> <?php // Bepalen paginatitel: switch($page) { case "home": echo "\t\t<p class='titel' title='Its Hammertime'><img src='graphics/title_itshammertime.jpg' alt='Its HAMMERTIME' /></p>\n"; include("home.php"); break; case "diensten": echo "\t\t<p class='titel' title='Diensten'><img src='graphics/title_diensten.jpg' alt='Diensten' /></p>\n"; include("diensten.php"); break; case "projecten": echo "\t\t<p class='titel' title='Projecten'><img src='graphics/title_projecten.jpg' alt='Projecten' /></p>\n"; include("projecten.php"); break; case "bedrijf": echo "\t\t<p class='titel' title='Bedrijf'><img src='graphics/title_bedrijf.jpg' alt='Bedrijf' /></p>\n"; include("bedrijf.php"); break; case "partners": echo "\t\t<p class='titel' title='Partners'><img src='graphics/title_partners.jpg' alt='Partners' /></p>\n"; include("partners.php"); break; case "contact": echo "\t\t<p class='titel' title='Contact'><img src='graphics/title_contact.jpg' alt='Contact' /></p>\n"; include("contact.php"); break; case "colofon": echo "\t\t<p class='titel' title='Colofon'><img src='graphics/title_colofon.jpg' alt='Colofon' /></p>\n"; include("colofon.php"); break; default: echo "\t\t<p class='titel' title='Its Hammertime'><img src='graphics/title_itshammertime.jpg' alt='Its HAMMERTIME' /></p>\n"; include("home.php"); break; } ?> |
TinyMCE
- Heb gezien dat hier problemen mee zouden kunnen zijn en dit direct op verschillende sites uitgeschakeld of in een map geplaatst die via .htaccess afgeschermd is, is dit voldoende?
Achterliggende serversoftware?
code:
1
2
3
4
5
6
7
8
9
10
11
| General server information: Operating system Linux Kernel version 2.6.22.14-72.fc6 Machine Type x86_64 Apache version 2.2.8 (Unix) PERL version 5.8.8 PHP version 5.2.5 MySQL version 5.0.45-community cPanel Build 11.23.3-RELEASE 25133 Theme cPanel X v2.6.0 cPanel Pro 1.0 (RC1) |
Tips worden zeer gewaardeerd, zit een beetje met het handen in het haar of ik alles moet verhuizen naar een andere host. Als het advies is om een professioneel bedrijf naar de beveiliging te laten kijken dan snap ik dat, ookal is dat niet echt financieel haalbaar is het als het moet gewoon maar de harde realiteit.
Ik snap dat ik geen van mijn eigen sites mag posten en zal dit dus niet doen, als mensen mij willen pm-en om ze te testen op SQL-injections e.d. zal ik uiteraard de URLs sturen.
What's in the case?