次のオープンリダイレクトの脆弱性があります。
<?php
$redirectUrl = $_GET['url'];
header("Location: $redirectUrl");
?>
このエクスプロイトは、ユーザーをページから悪意のあるページに送ります。
example.com/?url=example.com/faq.php
example.com/?url=evil.com/sploitCode.php
被害者のページ/ URLにevil.com/sploitCode.php
を挿入するにはどうすればよいですか?
まさにあなたがしているように。オープンリダイレクトの脆弱性の考え方は、特定のWebサイト(脆弱なサイト)に対するユーザーの信頼を利用し、それを悪用してWebサイトにアクセスさせることです。
したがって、このリンクをユーザーに送信します:example.com/?url=evil.com/sploitCode.php
。彼らが見るウェブサイトはexample.com
、そして彼らはそれらを信頼し、彼らはそれをクリックします(理論上)。一方、それらを送信する場合はevil.com
、彼らはそれを知らないか信頼していないので、彼らはそれをクリックしません。
URLをさらに難読化することもできますexample.com/some/Nice/sounding/path/%2F..%2F..%2F..%2F..%2F/?url=evil.com/something-less-evil.php?some-unneded=parameters
。その後、Nice a
タグで囲むこともできます。これにより、ユーザーの不審さが軽減されます(主な利点は、リンクの上にカーソルを置くと、一見して無害なリンクが表示されることです)。
例として指定するURLは、次のように書くこともできます。
example.com/?%75%72%6C=%65%76%69%6C%2E%63%6F%6D%2F%73%70%6C%6F%69%74%43%6F%64%65%2E%70%68%70
ドメイン、evil.com
、リンクに表示されなくなりました。それもまったくリダイレクトではありません。それは正確に正常に見えませんが、追跡コードが含まれている電子メールに変に見えるリンクがどれくらいの頻度で存在しますか?ドメインは完全に合法です。
あなたの質問はやや不明確です。サイトにはすでにオープンリダイレクトの脆弱性がありますか( https://www.owasp.org/index.php/Open_redirect )?もしそうなら、timがすでに言っているように続行します。そうではなく、悪意のあるコードをページに取り込む一般的な方法に興味がある場合は、サイトにハッキングする(「シェルを取得する」)か、ある種の無制限のファイルアップロードの脆弱性( https ://www.owasp.org/index.php/Unrestricted_File_Upload )、またはサイトのページを置き換えるのに十分な権限を持つFTPアカウントのパスワードをブルートフォースにして、ターゲットが悪意のあるコードで頻繁にアクセスする.phpページを更新します。