首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有一种方法可以查看是否通过SQL注入攻击访问了数据库?

是否有一种方法可以查看是否通过SQL注入攻击访问了数据库?
EN

Database Administration用户
提问于 2017-06-04 15:57:01
回答 3查看 906关注 0票数 1

我最近发现我的网站有一个带有SQL注入漏洞的页面。在测试时,它很容易被像sqlmap这样的隐藏工具所利用。如何确定是否使用SQL注入攻击访问了站点数据库,可能是利用了这个漏洞?服务器正在运行Apache2.4.18和MySQL Ver 14.14远程5.7.16。

EN

回答 3

Database Administration用户

发布于 2017-06-22 01:38:17

因为您记录了对数据库的所有查询,所以查找不属于数据库的查询。

从失败的查询开始。假设您的应用程序没有错误,那么提交给DB的查询应该很少失败。攻击者通常会在找到易受攻击的应用程序后执行一组查询。如果您在用于访问DB的帐户上应用最少特权的原则,您应该会发现大量失败的查询。还有一些查询会失败,因为不太复杂的攻击者可能会有一系列与您的数据库版本、版本或供应商不兼容的查询。

接下来,查找应用程序无法生成的查询/命令。例如,如果应用程序不应该访问系统表、系统功能、信息模式等.但你可以在日志中看到它们,这是一个很好的迹象,可能有些地方不对劲,值得深入调查。查看您的操作系统日志在这里可能会有帮助,以防他们尝试或成功地植入后门/rootkit。

一旦您完成了该操作,请查找具有异常/意外行为的查询。例如,返回比正常数据多得多的查询。如果看到查询同时访问所有表或运行显示表,然后按顺序访问每个表,则很有可能有攻击者尝试(或成功)提取数据。即使是一些看似无害的东西,比如SELECT *,如果没有WHERE子句,也是可疑的(假设你的应用程序不这么做)。注意,这适用于任何可能的查询,而不仅仅是SELECT。攻击者可能是一名心怀不满的员工,因此决定随机删除或更新数据,从而给您的审计师带来麻烦,甚至更糟。

查看IP地址通常没有帮助,即使您正在查看web服务器日志,除非您的用户连接的IP地址范围狭窄和/或众所周知。很少有攻击者在家里的电脑上做这件事。机器人和代理遍布世界各地,而且IP很容易被欺骗。除非你让你的ISP或Telco供应商参与进来,否则你不太可能对你自己的日志有很深的了解。一个更好的指标是您的公司防火墙或网络日志,以查找异常的出站IP目标。提取数据的攻击者必须将其发送到某个真正的端点。这种情况通常发生在一个不合作的地方,或者在外国公司或执法部门来敲门时行动缓慢。

票数 1
EN

Database Administration用户

发布于 2017-06-04 17:32:54

要想成为亲活动的应用程序,您可以使用PDO而不是普通的SQL查询。

检测SQL注入的措施可以是:

  1. 如果任何查询超过X秒或任何违反值的情况通知相关团队。
  2. 该团队可以看到,如果确认为SQL注入,则缓慢查询日志/显示处理列表是否包含不寻常的条目,并作为预防措施删除该应用程序用户。
票数 0
EN

Database Administration用户

发布于 2017-06-04 18:25:30

参见Apache的access.log。有趣的事情出现在那里。

票数 -1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/175375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档