【发布时间】:2012-01-21 18:42:55
【问题描述】:
我正在学习 sql 注入,并且对如何导致这种情况非常感兴趣。 我已经写了脚本来看看它是怎么回事。所以这是我的代码 =>
if (isset($_POST['act'])){
if ($connection = mysqli_connect($var['host'],$var['user'],$var['password'],$var['database'])){
if (mysqli_connect_errno()==0){
$username = $_POST['username'];
$password = $_POST['pswd'];
if ($result = mysqli_query($connection,"SELECT username,password FROM login WHERE username='" . $username . "' AND password='" . $password . "'")){
if (mysqli_num_rows($result)){
header("Location: http://localhost/default.php");
} else {
$res = "Invalid Credentials ...";
}
}
}
}
}
<form name="action" method="post" action="index.php">
Username:<input type="text" name="username" size="12"><br>
Password:<input type="password" name="pswd" size=12><br>
<input type="submit" name="act" value="Login">
</form>
我在表格中这样写,但什么也没发生
用户名和密码形式 => some' OR '1'='1'
我很感兴趣如何让 sql 注入破坏这个脚本,并且在没有有效凭据的情况下重定向到 default.php(当然在标记的脚本中)
谢谢...
【问题讨论】:
-
没什么我的意思,它没有写“无效的凭据”,也没有重定向。我认为它正在发生 sql 错误,但它无法在脚本中显示
-
您是否尝试在表单中输入用户名
' or 1=1并将密码设置为'? -
在这种情况下,您至少应该在代码顶部添加
error_reporting(E_ALL);,以便我们可以看到您的代码返回的任何错误 -
是的,没什么特别的 :(,现在我尝试 error_reporting
标签: php html sql forms code-injection