ホームページ  >  記事  >  バックエンド開発  >  PHPの脆弱性徹底解説(6) ~クロスサイトリクエストフォージェリ~

PHPの脆弱性徹底解説(6) ~クロスサイトリクエストフォージェリ~

黄舟
黄舟オリジナル
2016-12-22 09:27:581334ブラウズ

クロスサイトリクエストフォージェリを意味する

CSRF(Cross Site Request Forgeries)はXSRFとも書きます。攻撃者はターゲット ユーザーの HTTP リクエストを偽造し、CSRF 脆弱性のある Web サイトにこのリクエストを送信します。Web サイトがこのリクエストを実行すると、クロスサイト リクエスト フォージェリ攻撃が引き起こされます。攻撃者は秘密の HTTP 接続を使用して、ターゲット ユーザーが気づかずにこのリンクをクリックできるようにします。ユーザーは自分自身でクリックし、正当な権限を持つ正当なユーザーであるため、Web サイト リンク内で特定の HTTP コマンドを実行できます。攻撃者の目的。
例: ショッピング Web サイトで商品を購入する場合は、http://www.shop.com/buy.php?item=watch&num=1 を使用します。 item パラメーターは購入するアイテムを決定し、num パラメーターは購入するアイテムを決定します。攻撃者がターゲット ユーザーに秘密の方法でリンクを送信し、ターゲット ユーザーが誤ってアクセスした場合、購入数は 1,000 になります

Suiyuan Network PHP Message Board V1.0
を削除します。自由にメッセージ
//delbook.php このページはメッセージを削除するために使用されます
include_once("dlyz.php"); //dlyz.php のユーザー確認権限。権限が管理者の場合のみメッセージを削除できます
include_once("../ conn.php");
$del= $_GET["del"];
$id=$_GET["id"];
if ($del=="データ")
{
$ID_Dele= implode(" ,",$_POST['adid'] );
$sql=”ID が含まれる書籍から削除 (「.$ID_Dele.”)」;
mysql_query($sql);
}
else
{
$sql= ”delete from book where id=”.$ id; //削除するメッセージIDを渡す
mysql_query($sql);
}
mysql_close($conn);
echo "";
echo "alert('削除に成功しました!');";
echo " location= 'book.php';";
echo "";
?>
管理者権限があり、http://localhost/manage/delbook.php?id= を送信した場合2、ID 2 のメッセージは削除されます
使用方法:
メッセージを残すには一般ユーザーを使用します (ソースコード方式)。内容は
"delbook.php?id=2" /> です。
"delbook.php?id=3" />
"delbook.php?id=4" />
"delbook.php?id=5" />
4 つの画像リンクを挿入し、4 つの ID メッセージを削除します次に、ホームページに戻って閲覧し、変化がないことを確認します。 。画像を表示できません
ここで、管理者アカウントでログインしてホームページを更新すると、メッセージが 1 つだけ残っており、画像のリンクで指定された ID 番号を持つ他のメッセージがすべて削除されていることがわかります。
攻撃者はメッセージに非表示の画像リンクを挿入します。このリンクには、攻撃者自身がこれらの画像リンクにアクセスする場合、権限がないため、管理者がログに記録した場合には、何の効果も確認できません。で、このメッセージを表示した後、隠しリンクが実行され、彼の権限は十分に大きいため、これらのメッセージは削除されます
管理者パスワードを変更してください
//pass.php
if($_GET["act"] )
{
$username=$_POST[“username”];
$sh=$_POST[“sh”];
$gg=$_POST[“gg”];
$title=$_POST[“タイトル”] ;
$copyright=$_POST[“著作権”].”
設計と制作: ハッカー契約セキュリティネットワーク”;
$password=md5($_POST[“パスワード”]);
if(empty($_POST[“パスワード” ]))
{
$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.”' ここで id =1″;
}
mysql_query($sql);
mysql_close($conn);
echo “”;
echo “alert('変更成功!');”;
echo ” location='pass.php'; ”;
echo “”;
}
このファイルは、管理パスワードと Web サイト設定に関するいくつかの情報を変更するために使用されます。







< textarea name= “gg” rows=”6″ Cols=”80″ >水源ネットワーク PHP 掲示板 V1.0 (監査機能付き) のインストールと使用へようこそ!テキストエリア>