php漏洞之跨网站请求伪造与防止伪造方法_php技巧
伪造跨站请求介绍
伪造跨站请求比较难以防范,而且危害巨大,攻击者可以通过这种方式恶作剧,发spam信息,删除数据等等。这种攻击常见的表现形式有:
伪造链接,引诱用户点击,或是让用户在不知情的情况下访问
伪造表单,引诱用户提交。表单可以是隐藏的,用图片或链接的形式伪装。
比较常见而且也很廉价的防范手段是在所有可能涉及用户写操作的表单中加入一个随机且变换频繁的字符串,然后在处理表单的时候对这个字符串进行检查。这个随机字符串如果和当前用户身份相关联的话,那么攻击者伪造请求会比较麻烦。
如果攻击者以隐藏的方式发送给目标用户链接,那么如果目标用户不小心访问以后,购买的数量就成了1000个
实例
随缘网络PHP留言板V1.0
任意删除留言
//delbook.php 此页面用于删除留言
include_once("dlyz.php"); //dlyz.php用户验证权限,当权限是admin的时候方可删除留言
include_once("../conn.php");
$del=$_GET["del"];
$id=$_GET["id"];
if ($del=="data")
{
$ID_Dele= implode(",",$_POST['adid']);
$sql="delete from book where id in (".$ID_Dele.")";
mysql_query($sql);
}
else
{
$sql="delete from book where id=".$id; //传递要删除的留言ID
mysql_query($sql);
}
mysql_close($conn);
echo "";
?>
当我们具有admin权限,提交http://localhost/manage/delbook.php?id=2 时,就会删除id为2的留言
利用方法:
我们使用普通用户留言(源代码方式),内容为




插入4张图片链接分别删除4个id留言,然后我们返回首页浏览看,没有什么变化。。图片显示不了
现在我们再用管理员账号登陆后,来刷新首页,会发现留言就剩一条,其他在图片链接中指定的ID号的留言,全部都被删除。
攻击者在留言中插入隐藏的图片链接,此链接具有删除留言的作用,而攻击者自己访问这些图片链接的时候,是不具有权限的,所以看不到任何效果,但是当管理员登陆后,查看此留言,就会执行隐藏的链接,而他的权限又是足够大的,从而这些留言就被删除了
修改管理员密码
//pass.php
if($_GET["act"])
{
$username=$_POST["username"];
$sh=$_POST["sh"];
$gg=$_POST["gg"];
$title=$_POST["title"];
$copyright=$_POST["copyright"]."
网站:脚本之家";
$password=md5($_POST["password"]);
if(empty($_POST["password"]))
{
$sql="update gly set username='".$username."',sh=".$sh.",gg='".$gg."',title='".$title."',copyright='".$copyright."' where id=1";
}
else
{
$sql="update gly set username='".$username."',password='".$password."',sh=".$sh.",gg='".$gg."',title='".$title."',copyright='".$copyright."' where id=1";
}
mysql_query($sql);
mysql_close($conn);
echo "";
}
这个文件用于修改管理密码和网站设置的一些信息,我们可以直接构造如下表单:
存为attack.html,放到自己网站上http://www.jb51.net此页面访问后会自动向目标程序的pass.php提交参数,用户名修改为root,密码修改为root,然后我们去留言板发一条留言,隐藏这个链接,管理访问以后,他的用户名和密码全部修改成了root
防止伪造跨站请求
yahoo对付伪造跨站请求的办法是在表单里加入一个叫.crumb的随机串;而facebook也有类似的解决办法,它的表单里常常会有post_form_id和fb_dtsg。
随机串代码实现
咱们按照这个思路,山寨一个crumb的实现,代码如下:
class Crumb {
CONST SALT = "your-secret-salt";
static $ttl = 7200;
static public function challenge($data) {
return hash_hmac('md5', $data, self::SALT);
}
static public function issueCrumb($uid, $action = -1) {
$i = ceil(time() / self::$ttl);
return substr(self::challenge($i . $action . $uid), -12, 10);
}
static public function verifyCrumb($uid, $crumb, $action = -1) {
$i = ceil(time() / self::$ttl);
if(substr(self::challenge($i . $action . $uid), -12, 10) == $crumb ||
substr(self::challenge(($i - 1) . $action . $uid), -12, 10) == $crumb)
return true;
return false;
}
}
代码中的$uid表示用户唯一标识,而$ttl表示这个随机串的有效时间。
应用示例
构造表单
在表单中插入一个隐藏的随机串crumb
处理表单 demo.php
对crumb进行检查
if(Crumb::verifyCrumb($uid, $_POST['crumb'])) {
//按照正常流程处理表单
} else {
//crumb校验失败,错误提示流程
}
?>

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

En moins d'une minute et pas plus de 20 étapes, vous pouvez contourner les restrictions de sécurité et réussir à jailbreaker un grand modèle ! Et il n'est pas nécessaire de connaître les détails internes du modèle - seuls deux modèles de boîte noire doivent interagir, et l'IA peut attaquer de manière entièrement automatique l'IA et prononcer du contenu dangereux. J'ai entendu dire que la « Grandma Loophole », autrefois populaire, a été corrigée : désormais, face aux « Detective Loophole », « Adventurer Loophole » et « Writer Loophole », quelle stratégie de réponse l'intelligence artificielle devrait-elle adopter ? Après une vague d'assaut, GPT-4 n'a pas pu le supporter et a directement déclaré qu'il empoisonnerait le système d'approvisionnement en eau tant que... ceci ou cela. La clé est qu’il ne s’agit que d’une petite vague de vulnérabilités exposées par l’équipe de recherche de l’Université de Pennsylvanie, et grâce à leur algorithme nouvellement développé, l’IA peut générer automatiquement diverses invites d’attaque. Les chercheurs disent que cette méthode est meilleure que celle existante

Dans le développement d’applications Web, la fonction de téléchargement de fichiers est devenue une exigence fondamentale. Cette fonctionnalité permet aux utilisateurs de télécharger leurs propres fichiers sur le serveur, puis de les stocker ou de les traiter sur le serveur. Cependant, cette fonctionnalité oblige également les développeurs à prêter davantage attention à une vulnérabilité de sécurité : la vulnérabilité de téléchargement de fichiers. Les attaquants peuvent attaquer le serveur en téléchargeant des fichiers malveillants, causant ainsi des dommages au serveur à différents degrés. Le langage PHP est l'un des langages largement utilisés dans le développement Web, et les vulnérabilités de téléchargement de fichiers sont également l'un des problèmes de sécurité courants. Cet article présentera

Les vulnérabilités de débordement de tampon en Java et leurs dommages Le débordement de tampon signifie que lorsque nous écrivons plus de données dans un tampon que sa capacité, cela entraînera un débordement de données vers d'autres zones de mémoire. Ce comportement de débordement est souvent exploité par les pirates informatiques, ce qui peut entraîner de graves conséquences telles qu'une exécution anormale de code et un crash du système. Cet article présentera les vulnérabilités de débordement de tampon et leurs dommages en Java, et donnera des exemples de code pour aider les lecteurs à mieux comprendre. Les classes tampon largement utilisées en Java incluent ByteBuffer, CharBuffer et ShortB.

Selon l'actualité du 2 février, Shane Jones, responsable du département d'ingénierie logicielle de Microsoft, a récemment découvert une vulnérabilité dans le modèle DALL-E3 d'OpenAI, qui serait capable de générer une série de contenus inappropriés. Shane Jones a signalé la vulnérabilité à l'entreprise, mais il lui a été demandé de garder cette information confidentielle. Cependant, il a finalement décidé de révéler sa vulnérabilité au monde extérieur. ▲ Source de l'image : rapport divulgué par ShaneJones. Ce site Web a remarqué que ShaneJones avait découvert grâce à une recherche indépendante en décembre de l'année dernière qu'il existait une vulnérabilité dans le modèle DALL-E3 d'images générées par du texte OpenAI. Cette vulnérabilité peut contourner l'AI Guardrail (AIGuardrail), entraînant la génération d'une série de contenus inappropriés NSFW. Cette découverte a attiré une large attention

Présentation des vulnérabilités de l'opérateur virgule et des mesures de défense en Java : dans la programmation Java, nous utilisons souvent l'opérateur virgule pour effectuer plusieurs opérations en même temps. Cependant, nous pouvons parfois négliger certaines vulnérabilités potentielles de l’opérateur virgule qui peuvent conduire à des résultats inattendus. Cet article présentera les vulnérabilités de l'opérateur virgule en Java et fournira les mesures de protection correspondantes. Utilisation de l'opérateur virgule : La syntaxe de l'opérateur virgule en Java est expr1, expr2, qui peut être considérée comme un opérateur de séquence. Sa fonction est d'abord de calculer ex

Selon les informations de ce site du 21 juin, le micrologiciel Phoenix Secure Core UEFI a été exposé à une vulnérabilité de sécurité, affectant des centaines de périphériques à processeur Intel. Lenovo a publié une nouvelle mise à jour du micrologiciel pour corriger la vulnérabilité. Ce site a appris à partir de rapports que le numéro de suivi de la vulnérabilité est CVE-2024-0762, connu sous le nom de « UEFICANHAZBUFFEROVERFLOW », qui existe dans la configuration Trusted Platform Module (TPM) du micrologiciel Phoenix UEFI. Il s'agit d'une vulnérabilité de dépassement de tampon qui peut être exploitée. exécuter du code arbitraire sur un appareil vulnérable. La vulnérabilité a été découverte par Eclypsium dans Lenovo ThinkPad X1 Carbon 7e génération et X1Yoga 4e génération

Cet article vous apporte des connaissances pertinentes sur les vulnérabilités PHP. Il résume et présente principalement les codes de vulnérabilité courants en PHP. Il est très complet et détaillé. Examinons-le ensemble, j'espère qu'il sera utile aux amis dans le besoin.

<ul><li><strong>Cliquez pour accéder :</strong>Navigation du plug-in de l'outil ChatGPT</li></ul><figureclass="imageimage--expandable">< imgsrc ="/uploads/2023041
