web-dev-qa-db-ja.com

オープンリダイレクトの脆弱性を利用する方法

次のオープンリダイレクトの脆弱性があります。

<?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を挿入するにはどうすればよいですか?

10
nik

まさにあなたがしているように。オープンリダイレクトの脆弱性の考え方は、特定の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タグで囲むこともできます。これにより、ユーザーの不審さが軽減されます(主な利点は、リンクの上にカーソルを置くと、一見して無害なリンクが表示されることです)。

13
tim

例として指定する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、リンクに表示されなくなりました。それもまったくリダイレ​​クトではありません。それは正確に正常に見えませんが、追跡コードが含まれている電子メールに変に見えるリンクがどれくらいの頻度で存在しますか?ドメインは完全に合法です。

3
Luc

あなたの質問はやや不明確です。サイトにはすでにオープンリダイレクトの脆弱性がありますか( https://www.owasp.org/index.php/Open_redirect )?もしそうなら、timがすでに言っているように続行します。そうではなく、悪意のあるコードをページに取り込む一般的な方法に興味がある場合は、サイトにハッキングする(「シェルを取得する」)か、ある種の無制限のファイルアップロードの脆弱性( https ://www.owasp.org/index.php/Unrestricted_File_Upload )、またはサイトのページを置き換えるのに十分な権限を持つFTPアカウントのパスワードをブルートフォースにして、ターゲットが悪意のあるコードで頻繁にアクセスする.phpページを更新します。

0
tis