0

我在尝试着:

  1. 使用权$url
  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,那么您可以像您已经完成的那样在 1 步中完成所有这 3 件事

试试这个变量的回声

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

好的,让我在这里澄清一些困惑

1)您不必在 $_POST 数组中指定变量。您的 cURL POST 变量可以是任何变量。他们不必在 $_POST 中。

2)您必须将数据发布到表单的操作网址而不是其自己的网址,(除非两者都相同)

所以对于 1 你的代码应该像

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