2017-01-24 11 views
0

私は実際に企業のペンテスターとして働いています。このページにリクエストを得るためにcsrfトークンを生成するWebサイトにエラーがあり、 csrfトークンが暗号化されていないテキスト 正しいcsrfトークンを取得するには、ユーザーのクッキーをリクエストとともに送信する必要があります 私のPOCでcurlを使用してトークンであるリクエストの結果を取得しようとしましたが、そのトークンはでしたリクエストと共に送信されました リクエストが送信される唯一の方法は通常のフォームを使用していますが、その結果を得ることができないことがわかりました カールコードgetフォームを送信してデータを受信する方法

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "https://localhost/csrf-token"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 


curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'X-Requested-With: XMLHttpRequest' 
)); 
$output = curl_exec ($ch); 
curl_close ($ch); 
echo $output; 

私が使用する通常のGETリクエストはこちら

<form action="localhost/csrf-token" method="get"> 
<input type="submit" name="submit" value="send"> 
</form> 

私の質問は、2番目のコードスニペット

+0

まずは:あなたのテキストは読みにくいです。いくつかの句読点を使用してください、それは人々があなたを喜んで喜んでチャンスを増やします。 あなたの質問は:あなたの質問の見出しをGoogleの検索フィールドにコピーし、答えを見つけてください。それが助けにならない場合は、問題点をお知らせください。 – Burki

+0

私は新しい行を使っていましたが、ウェブサイトはそれらを削除しました。さらに、私はもちろんGoogleを検索して有用なものを見つけられなかった –

答えて

0
curl_setopt($ch, CURLOPT_POSTFIELDS, 'parametsr'); 

使用このパラメータを追加する結果を取得する方法です。

フォームで送信できるパラメータは1つだけです。

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "https://localhost/csrf-token"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 

curl_setopt($ch, CURLOPT_POSTFIELDS, 'submit=send'); 

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'X-Requested-With: XMLHttpRequest' 
)); 
$output = curl_exec ($ch); 
curl_close ($ch); 
echo $output; 

はフォームで要求されます。 それとも、あなたの要求としてURLを変更

https://localhost/csrf-token?submit=send 

はしかし、私は、リクエストにもトークンを生成するためにクッキーを必要とすると思いGETです。

+0

私はまだcsrf攻撃のタイプとしてユーザーからのクッキーを送信する必要があるので、htmlにある2番目のコードスニペットが必要ですが、フォームパーマーは重要ではありません –

+0

はい、それは私が言っていることです。サーバー上で動作するカールは、リクエストに追加されたクッキーではありません。したがって、トークンは生成されません。 urlは、リクエストがクッキー対応ブラウザから行われた場合、またはクッキーが手動でリクエストに追加された場合にのみ、トークンを返します。 –

関連する問題