我试图在软件安全性101的学校项目的白盒测试阶段理解给定Web应用程序的源代码。通过其他术语,我们试图在源代码中找到安全漏洞。当我研究index.php文件时,我看到在get-request和post-request之后都调用了login():
$router->get('/signin/', function() {
$controller = new \App\Controllers\SessionsController();
$controller->login();
});
$router->post('/signin/', function() {
$controller = new \App\Controllers\SessionsController();
$controller->login();
});
有问题的登录功能只是一个基本功能,它检查给定的用户名和密码哈希值是否与数据库中的任何条目匹配。如果他们这样做,login()
将使用提供的信息开始新会话。
从我看到的情况来看,只有在提交/ signin中的HTML表单(通过按下按钮完成)之后,没有理由在/ signin呈现后调用login()
。我在这里缺少任何逻辑,或者这是否意味着可以在某处进行简单的URL注入?