有没有办法看看是否已通过SQL注入攻击访问MySQL数据库?

时间:2017-06-04 16:06:32

标签: mysql sql-injection

我最近发现我的网站有一个带有SQL注入漏洞的页面。经过测试,使用像sqlmap这样的测试工具很容易被利用。如何判断是否已使用SQL注入攻击访问站点数据库,可能利用此漏洞?服务器正在运行Apache/2.4.18MySQL Ver 14.14 Distrib 5.7.16

2 个答案:

答案 0 :(得分:1)

不,确实没有办法检测到SQL注入攻击。

一些近似检测的方法依赖于保持应用程序运行的已知合法SQL查询的“白名单”。然后,如果查询日志包含任何未知的,那么这可能是他们来自非法来源的线索。否则它们可能是由DBA在查询工具中运行的。

它还要求您记录每个SQL查询,并且您已准备好已知良好查询的白名单。

正如@alexn上面评论的那样,您可以查看Apache日志(如果您认为SQL注入直接来自http请求,而不是所有SQL注入漏洞都是如此)。为此,您将在日志中搜索可能利用您在代码中找到的漏洞的所有http请求,然后使用该搜索结果过滤掉所有看似具有合法请求的漏洞(例如{ {1}}很好,但?id=123可疑。

还有其他产品监控查询流量,并尝试猜测SQL查询是否合法或是否发生可疑查询,但这些都容易出现误报和漏报。

答案 1 :(得分:0)

如果没有正确的日志记录,则无法检查。 为了降低风险,我建议更改密码并告知用户更改密码。