Maison > développement back-end > tutoriel php > Explication complète des vulnérabilités PHP (6) - Contrefaçon de requêtes intersites

Explication complète des vulnérabilités PHP (6) - Contrefaçon de requêtes intersites

黄舟
Libérer: 2023-03-03 20:56:01
original
1367 Les gens l'ont consulté

CSRF (Cross Site Request Forgeries), qui signifie falsification de requêtes intersites, s'écrit également XSRF. L'attaquant falsifie la requête HTTP de l'utilisateur cible, puis envoie cette requête à un site Web présentant une vulnérabilité CSRF. Une fois que le site Web a exécuté cette requête, il déclenche une attaque de falsification de requête intersites. L'attaquant utilise une connexion HTTP secrète pour permettre à l'utilisateur cible de cliquer sur ce lien sans s'en apercevoir. Étant donné que l'utilisateur a cliqué dessus lui-même et qu'il est un utilisateur légitime disposant d'autorisations légales, l'utilisateur cible peut exécuter un lien HTTP spécifique dans le site Web pour y parvenir. le but de l'attaquant.
Par exemple : lorsque vous achetez des produits sur un site Web commercial, utilisez http://www.shop.com/buy.php?item=watch&num=1. Le paramètre item détermine quel article doit être acheté, ainsi que le paramètre num. détermine la quantité à acheter. Si l'attaquant envoie le lien à l'utilisateur cible de manière cachée, si l'utilisateur cible y accède accidentellement, la quantité achetée sera de 1 000
Instances
Suiyuan Network PHP Message Board V1. 0
Supprimer le message à volonté
//delbook.php Cette page est utilisée pour supprimer les messages
include_once("dlyz.php"); //dlyz.php autorisations de vérification de l'utilisateur, uniquement lorsque l'autorisation est l'administrateur peut supprimer les messages
include_once( "../conn.php");
$del=$_GET["del"];
$id=$_GET["id"];
if ($del=="data" )
{
$ID_Dele= implode(“,”,$_POST['adid']);
$sql=”supprimer du livre où l'identifiant se trouve (« .$ID_Dele.”)”;
mysql_query($sql);
}
else
{
$sql=”supprimer du livre où id=”.$id //Pass; l'ID du message à supprimer
mysql_query ($sql);
}
mysql_close($conn);
echo "";
echo "alert('Supprimer avec succès !');" ;
echo ” location='book .php';";
echo "";
?>
Lorsque nous avons les autorisations d'administrateur et soumettons http://localhost/manage/delbook.php ?id=2, l'identifiant sera supprimé Commentaires pour 2
Méthode d'utilisation :
Nous utilisons des utilisateurs ordinaires pour laisser des messages (méthode du code source), le contenu est
« delbook. php?id=2” />
"delbook.php?id=3" />
"delbook.php?id=4" />
"delbook.php?id=5 " />
Insérer 4 liens d'images Supprimez respectivement les 4 messages d'identification, puis nous revenons à la page d'accueil pour parcourir, et il n'y a aucun changement. . L'image ne peut pas être affichée
Maintenant, nous nous connectons avec le compte administrateur et actualisons la page d'accueil. Nous constaterons qu'il ne reste qu'un seul message et que tous les autres messages avec le numéro d'identification spécifié dans le lien de l'image ont été supprimés.
L'attaquant insère un lien d'image caché dans le message. Ce lien a pour effet de supprimer le message. Lorsque l'attaquant accède lui-même à ces liens d'image, il n'a pas l'autorisation, il ne peut donc voir aucun effet. administrateur Après vous être connecté, si vous consultez ce message, le lien caché sera exécuté et son autorité est suffisamment grande, donc ces messages seront supprimés
Changez le mot de passe de l'administrateur
//pass.php
if ($_GET["act"])
{
$username=$_POST["username"];
$sh=$_POST["sh"];
$gg=$_POST[ "gg"];
$title=$_POST["title"];
$copyright=$_POST["copyright"]."
Conception et production : Hacker Contract Security Network";
$ password=md5($_POST["password"]);
if(emptyempty($_POST["password"]))
{
$sql=”update gly set username='”.$ nom d'utilisateur .”',sh=”.$sh.”,gg='”.$gg.”',title='”.$title.”',copyright='”.$copyright.”' où id=1 ″ ;
}
else
{
$sql=”update gly set username='”.$username.”',password='”.$password.”',sh=”. $ sh.”,gg='”.$gg.”',title='”.$title.”',copyright='”.$copyright.”' où id=1″;
}
mysql_query ($sql);
mysql_close($conn);
echo "";
echo "alert('Modification réussie !');";
echo ” location='pass.php' ; ”;
echo “”;
}
Ce fichier permet de modifier le mot de passe de gestion et certaines informations sur les paramètres du site Web. On peut directement construire le formulaire suivant :
<.>