まず、PHP によってデフォルトでインストールされるこのオプションについて説明します:
; 受信 GET/POST/Cookie データのマジック引用符
magic_quotes_gpc = On
送信する多くの文字はエスケープされます。 put クエリ対象の変数を一重引用符で囲むのは非常に正しいことです。これまで、多くのプログラムは次のように記述されていました。 もちろん、この方法で結合を直接続けることができます。 、mysql バージョンがそれをサポートしている必要があります。現在、この状況はほとんど存在しないため、PHP インジェクションは非常に困難です。今日セキュリティ情報でPHPインジェクションの脆弱性を知り、この書き方を初めて知りましたが、原理は同じですよ〜
article.phpです。次のように記述します:
if ($_REQUEST['sid ']){
$sid = $_REQUEST['sid']
}
include('mod.php');フィルタリングせずに直接取得した sid を確認し、mod .php を確認します。
if (!file_exists($announce))
include ($announce); $oldID];
if ($newID)
$reroute = "index.php?module=announce&ANN_user_op=view&ANN_id=$newID";
if (empty($reroute))
$reroute = " .php";
header("location:" . $ reroute);
exit();
変数はURLに直接リダイレクトされsidが付与されているため、変数newidは脆弱性変数となります。mysqlのバージョンが対応している場合Union、送信する URL に直接アクセスして 1=2 Union... .お問い合わせ~