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校验失败,错误提示流程
}
?>

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











1 分以内、わずか 20 ステップで、セキュリティ制限を回避し、大規模なモデルを正常にジェイルブレイクできます。そして、モデルの内部詳細を知る必要はありません。対話する必要があるのは 2 つのブラック ボックス モデルだけであり、AI は完全に自動的に AI を倒し、危険な内容を話すことができます。かつて流行った「おばあちゃんの抜け穴」が修正されたと聞きました。「探偵の抜け穴」「冒険者の抜け穴」「作家の抜け穴」に直面した今、人工知能はどのような対応戦略をとるべきでしょうか?波状の猛攻撃の後、GPT-4 はもう耐えられなくなり、このままでは給水システムに毒を与えると直接言いました。重要なのは、これはペンシルベニア大学の研究チームによって明らかにされた脆弱性の小さな波にすぎず、新しく開発されたアルゴリズムを使用して、AI がさまざまな攻撃プロンプトを自動的に生成できるということです。研究者らは、この方法は既存のものよりも優れていると述べています

Webアプリケーション開発において、ファイルアップロード機能は基本的な要件となっています。この機能を使用すると、ユーザーは自分のファイルをサーバーにアップロードし、サーバー上で保存または処理できます。ただし、この機能により、開発者はファイル アップロードの脆弱性というセキュリティ上の脆弱性にさらに注意を払う必要があります。攻撃者は悪意のあるファイルをアップロードすることでサーバーを攻撃し、サーバーにさまざまな程度の損害を与える可能性があります。 PHP 言語は Web 開発で広く使用されている言語の 1 つであり、ファイル アップロードの脆弱性も一般的なセキュリティ問題の 1 つです。この記事で紹介するのは

Java のバッファ オーバーフローの脆弱性とその害 バッファ オーバーフローとは、バッファにその容量を超えるデータを書き込むと、データが他のメモリ領域にオーバーフローすることを意味します。このオーバーフロー動作はハッカーによって悪用されることが多く、異常なコード実行やシステムクラッシュなどの重大な結果を引き起こす可能性があります。この記事では、Java におけるバッファ オーバーフローの脆弱性とその害について紹介し、読者の理解を助けるコード例を示します。 Java で広く使用されているバッファ クラスには、ByteBuffer、CharBuffer、ShortB などがあります。

2 月 2 日のニュースによると、マイクロソフトのソフトウェア エンジニアリング部門マネージャーであるシェーン ジョーンズ氏は最近、一連の不適切なコンテンツを生成できると言われている OpenAI の DALL-E3 モデルの脆弱性を発見しました。 Shane Jones 氏はこの脆弱性を同社に報告しましたが、機密保持を求められました。しかし、最終的に彼はその脆弱性を外部に公開することにしました。 ▲画像出典:ShaneJonesが公開した報告書 当ウェブサイトでは、ShaneJonesが昨年12月に独自の調査を通じて、OpenAIのテキスト生成画像のDALL-E3モデルに脆弱性があることを発見したことに注目した。この脆弱性により AI ガードレール (AIGuardrail) がバイパスされ、一連の NSFW 不適切なコンテンツが生成される可能性があります。この発見は広く注目を集めました

Java におけるカンマ演算子の脆弱性と防御策の概要: Java プログラミングでは、複数の操作を同時に実行するためにカンマ演算子をよく使用します。ただし、場合によっては、予期しない結果を引き起こす可能性のあるカンマ演算子の潜在的な脆弱性を見落とすことがあります。この記事では、Java のカンマ演算子の脆弱性を紹介し、対応する保護対策を提供します。カンマ演算子の使用法: Java のカンマ演算子の構文は expr1、expr2 であり、シーケンス演算子と言えます。その機能は、最初に ex を計算することです。

6 月 21 日のこのサイトのニュースによると、Phoenix Secure Core UEFI ファームウェアがセキュリティ上の脆弱性にさらされ、数百台の Intel CPU デバイスに影響を及ぼし、Lenovo はこの脆弱性を修正するための新しいファームウェア アップデートをリリースしました。このサイトは、脆弱性追跡番号が「UEFICANHAZBUFFEROVERFLOW」として知られる CVE-2024-0762 であることを報告から知りました。これは、Phoenix UEFI ファームウェアのトラステッド プラットフォーム モジュール (TPM) 構成に存在し、悪用される可能性のあるバッファ オーバーフローの脆弱性です。脆弱なデバイス上で任意のコードを実行します。この脆弱性は、Lenovo ThinkPad X1 Carbon 第 7 世代および X1Yoga 第 4 世代の Eclypsium によって発見されました。

この記事は、PHP の脆弱性に関する関連知識を提供します。主に PHP の一般的な脆弱性コードを要約して紹介しています。非常に包括的かつ詳細です。一緒に見てみましょう。困っている友人の役に立てば幸いです。

<ul><li><strong>クリックして入力:</strong>ChatGPT ツール プラグイン ナビゲーション</li></ul><figureclass="imageimage--expandable">< imgsrc ="/uploads/2023041
