一尘不染

如何修复服务器状态代码:302由SQL发现我注入了Firefox插件

mysql

我使用 SQL Inject Me
Firefox插件扫描了登录脚本

根据测试结果,我的脚本容易受到SQL注入的攻击。结果示例

Results:
Server Status Code: 302 Found
Tested value: &#49&#39&#32&#79&#82&#32&#39&#49&#39&#61&#39&#49
Server Status Code: 302 Found
Tested value: 1' OR '1'='1
Server Status Code: 302 Found
Tested value: 1 UNI/**/ON SELECT ALL FROM WHERE
Server Status Code: 302 Found
Tested value: %31%27%20%4F%52%20%27%31%27%3D%27%31

我的剧本

  1. login.php-登录表单
  2. check-login.php-检查登录详细信息,这是代码。

$ email = clean($ _ POST [‘username’]); $ pass = clean($ _ POST [‘password’]);
$ user =“从tbl_admin中选择*,其中admin =’$ email’和pass =’$ pass’”;

//一些代码

$ _SESSION [‘login_mes’] =“您已经成功登录!header(“ Location:admin.php”); 出口();

}其他{

$ _SESSION [‘login_mes’] =“无效的电子邮件地址或密码,请重试。header(“ Location:login.php”);
出口(); }

登录失败时出现问题。如果我删除

} else {

$_SESSION['login_mes'] = "Invalid email address or password, please try again.";
header("Location:login.php");
exit();
}

SQL Inject Me无法检测到任何故障,以及如何修复此部分?


阅读 318

收藏
2020-05-17

共1个答案

一尘不染

服务器使用302的方式说“我希望您转到[其他地方]”(在本例中为login.php)。这不是错误,而是完全正常的响应。特别是在您的情况下(如果您问我),在尝试进行SQL注入之后将用户发送到登录页面比让他进入更为有意义。

2020-05-17