demande de test

Nos experts testeront vos sites avec attention.
Postez ici vos liens. Et fournissez les accès de bases (login et mot de passe 'simple utilisateur' par exemple si vous souhaitez voir ce qu'un utilisateur peux exploiter)

Moderators: Mod, Mod, Mod

demande de test

Postby COCO80000 » Sat Feb 20, 2010 11:40 am

bonjour,
me revoici de retour avec un nouveau site
pouvez vous vérifier et me dire si des faille sont détecte afin que je puisse voir pour les répare il et pas encore connu
mais je prend les devant

adresse du lien pour test : http://www.diabolo.tonsite.biz/hackbbs.html
adresse du site a tester : http://www.diabolo.tonsite.biz/

compte test : pseudo : hackbbs
mot de passe : testeur

merci d'avance
COCO80000
Projets
 
Posts: 6
Joined: Mon Feb 15, 2010 10:42 pm

Postby SPLEENKIRBY » Tue Feb 23, 2010 1:02 am

Dans l'édition de profil, pour l'avatar, l'entrée n'est pas strictement pas vérifiée ...
Donc j'ai réussi à exploiter une XSS persistante bien méchante comme il faut ! (tu verras que tous ceux qui me voient sur la map voient à la fois un avatar chelou, mais se tapent une alert :roll: )

Deuxièmement, ton upload d'avatar n'est pas assez restrictif :
J'ai pu uploader un fichier xxx.php.jpg sans souci, celui ci contient du code PHP. (images/avatar/4.jpg)
A la moindre petite faille include qui traîne, et tu peux dire adieu à ton site :(

Il y a aussi une énorme SQL Injection (grosse comme une maison!), quand on essaye de créer un topic, le select chargé de choisir le "Forum", tu peux injecter n'importe quoi... :( (donc la variable "type" n'est pas vérifié, attention !)

J'ai aussi réussi à faire fosser le script de sondage, en envoyant des requêtes vers des ID qui n'existaient pas :)

Ca c'est bizarre aussi :
http://www.diabolo.tonsite.biz/login.php?do=login2

Et il me semble qu'en passant à guide.php, la sesion ne suit pas ... (demande de connection à gauche)

Ca c'est un peu moche, non ?
http://www.diabolo.tonsite.biz/index.php?do=sacados
[quote:beae3b0d15]NouritureNouriture : x0
Potion SoinPotion de Soin : x0
Potion ManaRestauration de Mana : x0
AntidoteAntidote : x0
Potion de VigueurPotion de Tp : x0
item6Pioche 0
[/quote:beae3b0d15]

C'est tout ! (côté application, j'ai pas regardé côté serveur)
Mon petit doigt me dit qu'il en reste bien d'autres, donc revérifie bien [u:beae3b0d15]toutes[/u:beae3b0d15] les entrées que tu recois de l'utilisateur ;)
User avatar
SPLEENKIRBY
Projets
 
Posts: 63
Joined: Wed Sep 02, 2009 10:13 pm
Location: \x44\x54\x43\

Postby COCO80000 » Tue Feb 23, 2010 8:36 pm

ok merci de votre reponse
pour les avatar j'ai modifier les personne utiliseront les avatar deja disponible j'enleve le upload pour le forum je vais regarder pour en mettre un externe peut etre que sa reduira les risques

et oui pour le liens du sac a dos je vais aller verifier pourquoi sa me fait sa
COCO80000
Projets
 
Posts: 6
Joined: Mon Feb 15, 2010 10:42 pm

Postby SPLEENKIRBY » Wed Feb 24, 2010 7:05 pm

[quote:92c0273177]
pour les avatar j'ai modifier les personne utiliseront les avatar deja disponible [/quote:92c0273177]
C'est une bien plus sage décision :)
Aussi, je le répète : Vérifie bien tous les champs dans le profil, une XSS au niveau du nom du personnage est possible aussi apparemment.

[quote:92c0273177] pour le forum je vais regarder pour en mettre un externe peut etre que sa reduira les risques[/quote:92c0273177]
Oui et non ;
- Oui parce qu'il sera codé par une équipe compétante, qu'il disposera déja de beaucoup de fonctionnalités et de personnalisation, et qui plus est d'une sécurité théoriquement imparable.
- Non parce que une tonne de gens épluchent le code source à la recherche de la moindre faille, et une fois une rendue publique, tu peux être sûr que la nouvelle se répandra comme une traînée de poudre.
Et si par malheur, tu n'es pas informé avant qu'un utilisateur peu bienveillant l'utilise...
S'en est fini pour la sécurité de ton site !

Bonne continuation ;)
User avatar
SPLEENKIRBY
Projets
 
Posts: 63
Joined: Wed Sep 02, 2009 10:13 pm
Location: \x44\x54\x43\

Postby COCO80000 » Wed Feb 24, 2010 9:30 pm

[quote:a07a57fd01]Aussi, je le répète : Vérifie bien tous les champs dans le profil, une XSS au niveau du nom du personnage est possible aussi apparemment.[/quote:a07a57fd01]

merci
je vais regarder sa mais je sait pas encore comment faire pour protéger je vais chercher un peut pour voir
COCO80000
Projets
 
Posts: 6
Joined: Mon Feb 15, 2010 10:42 pm

Postby SPLEENKIRBY » Wed Feb 24, 2010 10:03 pm

Contre les XSS, tu as plusieurs solutions :
- soit tu utilises, [b:b28261f048]à l'affichage[/b:b28261f048] (donc après le stockage sur BDD), la fonction en php "htmlentities" (regarde la doc php pour en savoir plus)
- soit tu utilises, au traitement (donc avant stockage sur BDD), la fonction php "strip_tags", (voir doc)
[i:b28261f048]*! A noter que la dernière solution ne bouche pas forcément tous les risques de XSS !*
[/i:b28261f048]
- Ou alors tu utilises un filtrage très respectif, excluant tous les caractères n'étant ni des lettres, ni des chiffres.
(La plus contraignante, mais sûrement la plus efficace :))
User avatar
SPLEENKIRBY
Projets
 
Posts: 63
Joined: Wed Sep 02, 2009 10:13 pm
Location: \x44\x54\x43\

Postby COCO80000 » Wed Feb 24, 2010 10:07 pm

je viens de trouver ceci sur le net :

[code:1:bc4dc357ec]Maintenant pour securiser tous ca, a chaque fois que vous utilisez les fonctions
echo et print() pour afficher une variable faite ceci :

<?
print(htmlspecialchars($variable));
?>

ou

<?
echo htmlspecialchars($variable);
?>

Au lieu de ca:

<?
print($variable);
?>

ou

<?
echo ($variable);
?> [/code:1:bc4dc357ec]

seulement moi je n'ai rien de cela dans mes script :?
COCO80000
Projets
 
Posts: 6
Joined: Mon Feb 15, 2010 10:42 pm

Postby SPLEENKIRBY » Wed Feb 24, 2010 10:08 pm

Euh ... Vraiment ?
Alors, explique moi comment fais tu pour afficher des variables ?
(par exemple, le nom de l'utilisateur ?)
User avatar
SPLEENKIRBY
Projets
 
Posts: 63
Joined: Wed Sep 02, 2009 10:13 pm
Location: \x44\x54\x43\

Postby COCO80000 » Wed Feb 24, 2010 10:15 pm

je me le demande bien car sa était codé par un de mes amis mais ils plus connecté depuis un certain moment alors j'essai de me débrouiller tout seul avec le peu de connaissance que j'ai et les seules echo que j'ai c'est sur la map

[code:1:60180bdd0e]<meta http-equiv="refresh" content="240">
<body style="background-color:transparent">
<bgsound src="./musiques/map.mid" autostart="true" loop="50000000000000000000000000000000000000000000000000">
<table width="478" height="454" style="background-image:url(images/sol/fond_carte.jpg)" border="0" >
<tr>
<td align="center" valign="middle">
<?php


include('lib.php');
include('config.php');
include('cookies.php');
$link = opendb();
$userrow = checkcookies();

global $userrow;

if (isset($_COOKIE["dkgame"])) {

// Format du cookies:
// {ID} {USERNAME} {PASSWORDHASH} {REMEMBERME}
$theuser = explode(" ",$_COOKIE["dkgame"]);
$username= $theuser[1];
$id = $theuser[0];
}
$query2 = doquery("SELECT latitude,longitude FROM rpg_towns WHERE id='$id' LIMIT 1", "towns");
$query = doquery("SELECT latitude,longitude FROM rpg_users WHERE id='$id' LIMIT 1", "users");
$query2 = doquery("SELECT lati,longi FROM rpg_sol WHERE id='$id' LIMIT 1", "sol");
$query2 = doquery("SELECT latitude,longitude,name FROM rpg_maison WHERE id='$id' LIMIT 1", "maison");

$deplaquery = doquery("SELECT id FROM rpg_users WHERE latitude='$latitude' AND longitude='$longitude' LIMIT 1", "users");
$tabl = mysql_fetch_array($query);


$latmax = $tabl['latitude'] + 5;
$longmax = $tabl['longitude'] + 6;
$latmin = $tabl['latitude'] - 5;
$longmin = $tabl['longitude'] - 6;

$hp = 100 / $userrow['maxhp'];
$hp2 = $hp * $userrow['currenthp'];
$tp = 100 / $userrow['maxtp'];
$tp2 = $tp * $userrow['currenttp'];
$mp = 100 / $userrow['maxmp'];
$mp2 = $mp * $userrow['currentmp'];

$latitude = $latmax;
echo "<body><center><table>\n";
while ($latitude >= $latmin ) {
echo "<tr>\n\n";
$longitude = $longmin;
while ($longitude <= $longmax) {
$sql = "SELECT username, pseudo, avatar FROM rpg_users WHERE latitude='$latitude' AND longitude='$longitude'";
$query = mysql_query($sql);
$fetch = mysql_fetch_array($query);
$username = $fetch['username'];
$avatar = $fetch['avatar'];
$id = $fetch['id'];

$sql = "SELECT nimi FROM rpg_clans WHERE omanik='$id'";
$query = mysql_query($sql);
$fetch = mysql_fetch_array($query);
$nimi = $fetch['nimi'];

$sqll = "SELECT nom FROM rpg_sol WHERE lati='$latitude' AND longi='$longitude'";
$query = mysql_query($sqll);
$fetch = mysql_fetch_array($query);
$sol = $fetch['nom'];

$sqll = "SELECT name FROM rpg_maison WHERE latitude='$latitude' AND longitude='$longitude'";
$query = mysql_query($sqll);
$fetch = mysql_fetch_array($query);
$maison = $fetch['name'];

$sqll = "SELECT name FROM rpg_towns WHERE latitude='$latitude' AND longitude='$longitude'";
$query = mysql_query($sqll);
$fetch = mysql_fetch_array($query);
$villes = $fetch['name'];
if($villes !='')
{echo "<td style=\"background-image:url(images/sol/maison1.jpg)\" width=\"40\" height=\"40\"><img src=\"./images/sol/maison1.jpg\" width=\"35\" height=\"40\" border=\"0\" title=\"".$villes."\"></td>"; }
else {
if($avatar!='') {
echo "<td><img src=\"./images/avatar/".$avatar."\" width=\"35\" height=\"35\" border=\"0\" title=\"Id :".$id."/Pseudo:".$username."/Clan: ".$nimi."/Position:(".$longitude." , ".$latitude.")\"></td>";
} else {
if($maison !='')
{echo "<td style=\"background-image:url(images/sol/maison.jpg)\" width=\"40\" height=\"40\"><img src=\"./images/sol/maison.jpg\" width=\"35\" height=\"40\" border=\"0\" title=\"Maison de ".$maison."\"></td>"; }
else {
if($sol !='') {
echo "<td style=\"background-image:url(./images/sol/".$sol.".jpg)\" width=\"35\" height=\"35\"></td>"; }
else {
echo "<td style=\"background-image:url(./images/avatar/.gif)\" width=\"35\" height=\"35\"></td>\n";
}
}
}
}
$longitude++;
}
echo "</tr>";
$latitude--;
}
echo '</table></center></body>';

echo '<div id="Layer1" style="position:absolute; left:36; top:30; width:99; height:71; z-index:1">
<table width="1" height="1" border="0" cellspacing="2" cellpadding="0">
<tr>
<td width="6%" height="2"><span class="blancmap"><b><font size="2">HP</font></b></span></td>
<td width="98"><span class="blancmap2"><div align="right"><font size="2">'.$userrow['currenthp'].'/ '.$userrow['maxhp'].'</font></div></span>
<table width="100"height="2" border="0" cellspacing="0" cellpadding="0">
<tr bgcolor="#000000">
<td>
<table width="'.$hp2.'" height="2" border="0" cellspacing="0" cellpadding="0">
<tr bgcolor="#DA4A12">
<td></td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="6%" height="2"><span class="blancmap"><b><font size="2">TP</font></b></span></td>
<td width="98"><span class="blancmap2"><div align="right"><font size="2">'.$userrow['currenttp'].'/ '.$userrow['maxtp'].'</font></div></span>
<table width="100" height="2" border="0" cellspacing="0" cellpadding="0">
<tr bgcolor="#000000">
<td>
<table width="'.$tp2.'" height="2" border="0" cellspacing="0" cellpadding="0">
<tr bgcolor="#CC00CC">
<td></td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="6%" height="2"><span class="blancmap"><b><font size="2">MP</font></b></span></td>
<td width="98"><span class="blancmap2"><div align="right"><font size="2">'.$userrow['currentmp'].'/ '.$userrow['maxmp'].'</font></div></span>
<table width="100" height="2" border="0" cellspacing="0" cellpadding="0">
<tr bgcolor="#000000">
<td>
<table width="'.$mp2.'" height="2" border="0" cellspacing="0" cellpadding="0">
<tr bgcolor="#810FF5">
<td></td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>';
?>
</td>
</tr>
</table>

[/code:1:60180bdd0e]
COCO80000
Projets
 
Posts: 6
Joined: Mon Feb 15, 2010 10:42 pm

Postby RAYON-GAMA » Fri May 28, 2010 4:59 pm

Chez moi le lien est mort.
User avatar
RAYON-GAMA
Projets
 
Posts: 78
Joined: Mon Nov 17, 2008 2:52 pm
Location: Quelle que part.....


Return to Faites tester vos sites <b>DE TEST</b>

Who is online

Users browsing this forum: No registered users and 5 guests

cron