id 参数删除任何其他雇主的职位发布。由 CodeAstro 开发的 PHP MySQL 在线求职门户项目在处理删除请求之前,未能验证经过身份验证的用户是否拥有该职位发布。通过更改 GET 请求中的 id 参数,攻击者可以删除属于其他雇主的职位发布。
id 参数更改为雇主 A 的职位 ID步骤 1:- GET /online-job-portal-php-mysql/jobs/job-delete.php?id=[victim_job_id] HTTP/1.1 Host: target Cookie: [attacker_session_cookie]
我们将从用户 A 创建一个新的职位发布,并记下这里的 id,即 41

步骤 2:-
我们将从用户 B 删除其职位发布,但使用 burp 拦截该请求
正如我们所见,用户 B 的职位发布 id 为 39
步骤 3:-
我们可以将职位发布 id 从 39 更改为 41,并使用用户 B 的账户删除用户 A 的职位发布
在这张图片中,我们可以看到职位发布 id 已从 39 更改为 41
然后我们可以看到它已被成功删除

步骤 4:-
如果我们进入用户 A 的账户并查看 postedJobs 端点,我们可以看到该职位发布已被删除

HTTP/1.1 302 Found Location: /online-job-portal-php-mysql/users/postedjobs.php?msg=deleted
任何经过身份验证的雇主都可以永久删除平台上属于其他雇主的职位发布,导致数据丢失和服务中断。