Hack
Liste site Exploit
Others
Site WEB
Attack DDOS
- Mod_evasive est un module Apache pour contrer les attaques DOS. Celui-ci est par exemple capable de détecter lorsqu'un utilisateur demande un trop grand nombre de pages sur un site web, sur un délai de temps très court.
#> apt-get install libapache2-mod-evasive
<IfModule mod_evasive20.c> DOSHashTableSize 3097 # Pas plus de 2 pages par seconde DOSPageCount 2 DOSPageInterval 1 # Pas plus de 150 requetes par seconde (images, CSS...) DOSSiteCount 150 DOSSiteInterval 1 # Periode en seconde pendant laquelle on bloque le client DOSBlockingPeriod 10 # Dossier contenant les IP blaclistes DOSLogDir "/var/lock/mod_evasive" </IfModule>
#> mkdir -p /var/lock/mod_evasive #> chown -R apache:apache /var/lock/mod_evasive #> /etc/init.d/apache2 restart
SQL Injection
Ce type d'attaques est le plus répandus, voici quelques conseils pour pallier à ce problème...
' OR 1=1");
PHP
- Protéger les chaines de caractères : utiliserez la fonction mysql_real_escape_string()
- Protéger les valeurs numériques : utiliserez la fonction is_numeric()
- Utiliser htmlspecialchars() et/ou htmlentities() pour chaque inputbox
ASP
Bah ASP c'est moche!! C'est pourquoi il vous faut faire vos propres fonction qui vérifia la présence de caractère douteux...
exemple : ASP-SQL-Injection
Robots
Protéger vos formulaires d'inscription/d'authentification
Utiliser le captcha!!
Inclusion
PHP
Faille include
<?php if(isset($_GET['page'])) { include $_GET['page'].'.php'; } else { include 'accueil.php'; } ?>
Il suffit de placer une page. Il se rend ensuite sur le site concerné par la faille, et rentre l'url suivante : monsite.com/index.php?page=http://autre_site.com/page
- Solutions :
- Utiliser les Expressions régulières en enlevant les caractères spéciaux : le slash, le point et l'antislash... qui pourraient prendre place dans l'url
- Bannir au niveau apache :
#Block hack RewriteEngine on RewriteCond %{QUERY_STRING} ^(.*)http(\:|\%3A)(.*)$ ReWriteRule .* - [F]
- Préférer require_once() ou include_once()
Faille du code HTML et des formulaires
<form action="page.php" method="post">
<textarea name="message"></textarea> <input type="submit" value="Envoyer" />
</form>
<?php if(isset($_POST['message'])) { echo $_POST['message']; //On aurait très bien pu stocker le message, cela serait revenu au même } ?>
Ici on peut injecter du code HTML. Pour ce prémunir "utiliser la fonction htmlentities()"
echo htmlentities($_POST['message']);
Upload de fichier
<?php if(!empty($_FILES['fichier_source']['tmp_name'])) { //Un fichier a été envoyé, nous pouvons le traiter } ?>
Pour ce prémunir de fichier véroler, traiter la reception du fichier, pour identifier le type de fichier avec notamment la fonction "getimagesize()".
XSS
Le XSS signifie Cross Scripting Style
Le principe est d'injecter des données arbitraires dans un site web, par exemple en déposant un message dans un forum, mais aussi par des paramètres d'URL, etc. Si ces données arrivent telles quelles dans la page web transmise au navigateur (par les paramètres d'URL, un message posté, etc.) sans avoir été vérifiées, alors il existe une faille : on peut s'en servir pour faire exécuter du code malveillant en langage de script (du JavaScript le plus souvent) par le navigateur web qui consulte cette page.
La détection de la présence d'une faille XSS peut se faire par exemple en entrant un script Javascript dans un champ de formulaire ou dans une URL :
<script type="text/javascript">alert('bonjour')</script>
Si une boîte de dialogue apparaît, on peut en conclure que l'application Web est sensible aux attaques de type XSS.
Système
Brute force
Installer fail2ban!
Doc : [1]
Root kit
Anti-root kit
- Utiliser => Rkhunter ([2])
Outils
- NMAP [3]