をコードする脆弱なコードXSS、ここでリターンURL
<?php header("Location: ".$_POST['target']); ?>
清掃されているターゲットに入って来てください嫌なことをする適切な方法は何ですか?
をコードする脆弱なコードXSS、ここでリターンURL
<?php header("Location: ".$_POST['target']); ?>
清掃されているターゲットに入って来てください嫌なことをする適切な方法は何ですか?
まずアップ、この脆弱性である
OWASPは「未検証のリダイレクトとフォワード」としてそれを分類しています。 OWASP's guide for more informationを参照してください。
いくつかの面白い攻撃が可能です。これがどのように悪用されるかについては、this thread on sla.ckers.org for ideasを参照してください。
あなたはどうやって自分を守っていますか?
それはそれです。
脆弱性はありません。
$_POST['target']
に何かを入れることはできますか?彼は彼が望むページにリダイレクトされます。アドレスバーに別のURLを入力するか、このページのいくつかの文字を火薬で変更した場合と同じです。
CSRFタイプの攻撃を心配している場合は、その攻撃から保護してください。
UPD:それは脆弱であると私downvotes誰が考えている人に
(真実のためのdownvoteに感謝し、あなただけちょうどdownvote、あなたは何も言うことはありませんが確認さ):
このコードをhttp://pastebin.com/Jw4Zp3F5とし、それが脆弱であることを証明してください。
UPD 2:だから
、1週間は左。私はセキュリティ記事へのリンクをたくさん持っており、は脆弱性であるという大きな言葉をたくさん読んでいます。しかし、NOONEはそれが本当にあることを証明しました。
脆弱性がある場合は、なぜ私のスクリプトに基づいてそれが証明されていないのですか脆弱な行?あるいはあなたができることはすべて、記事を指し示すだけで、それ以上は何もないのですか?
古いバージョンのPHPでは、これはCRLF injection vulnerabilityとなります。しかし、これは修正されており、現在はOWASP A10 violationです。あなたの質問に答えるために、はいこれはOWASPに違反するので脆弱です。
あなたのデザインと要件によって異なります。しかし、私は、ユーザーからの全体のパスを求めるのではなく、差別化のパスを尋ねて自分のイニシャルを追加すると思います。私はhttp://HOSTNAME/ $ userGivenPath
を意味します。第2に、有効なパスを知っていれば、有効なパスに対してユーザーからのエントリを検証します。
第3に、今すぐ直接$ _POST ['path']を使用している場合、後でrequire $ _POST ['']のような別の場所で使用することもできます。したがって、POSTを使用するあなたのやり方は危険です。だから、あなたは\ ..、\ .. \ ..などのファイルパスをフィルタリングする必要があります。
ええと、脆弱性は何ですか? – zerkms
@zerkms:彼は非衛生的なユーザー入力を使用しています。 –
@Matt Ellen:だから何?それを使って攻撃者は何をすることができますか? – zerkms