我最近发现我的网站有一个带有SQL注入漏洞的页面。经过测试,使用像sqlmap
这样的测试工具很容易被利用。如何判断是否已使用SQL注入攻击访问站点数据库,可能利用此漏洞?服务器正在运行Apache/2.4.18
和MySQL Ver 14.14 Distrib 5.7.16
。
答案 0 :(得分:1)
不,确实没有办法检测到SQL注入攻击。
一些近似检测的方法依赖于保持应用程序运行的已知合法SQL查询的“白名单”。然后,如果查询日志包含任何未知的,那么这可能是他们来自非法来源的线索。否则它们可能是由DBA在查询工具中运行的。
它还要求您记录每个SQL查询,并且您已准备好已知良好查询的白名单。
正如@alexn上面评论的那样,您可以查看Apache日志(如果您认为SQL注入直接来自http请求,而不是所有SQL注入漏洞都是如此)。为此,您将在日志中搜索可能利用您在代码中找到的漏洞的所有http请求,然后使用该搜索结果过滤掉所有看似具有合法请求的漏洞(例如{ {1}}很好,但?id=123
可疑。
还有其他产品监控查询流量,并尝试猜测SQL查询是否合法或是否发生可疑查询,但这些都容易出现误报和漏报。
答案 1 :(得分:0)
如果没有正确的日志记录,则无法检查。 为了降低风险,我建议更改密码并告知用户更改密码。