0

我刚刚接管了 Web 服务的管理,今天我收到了有关此错误的用户报告。现在我不是 sql 注入专家,但这个错误是否使这种攻击成为可能?

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[MySQL][ODBC 3.51 Driver][mysqld-4.1.22-community-nt]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '') ORDER BY TCOL_date desc' at line 1

我之所以问,是因为出于某种原因,我无法访问代码,而前一个人坚持认为该站点是安全的,因此我需要提供一些证据或事实证明​​它实际上很脆弱。

提前感谢您的帮助。

4

1 回答 1

0

简而言之,不是真的……但是。

虽然这可能会提供比您熟悉的更多信息(正在运行的 MySQL 版本、正在使用的驱动程序以及一些关于几列的信息),但它不会像显示整个 SQL 行那样让您受到攻击将。有人可能会试图盲目破解它以获取更多信息,而从攻击者试图进入的角度来看,它显示任何信息的事实比仅在日志中显示信息要糟糕得多。反馈,即使是一点点也可以帮助攻击[er]。

如果通过尝试在表单中插入各种代码位,您可以获得打印您自己正在插入的内容的响应,这将对攻击者更有利。当您插入 a 时,此应用程序会中断这一事实'使我相信它并不像程序员声称的那样安全。这也可能导致攻击者寻找另一种攻击途径。如果他们可以将 javascript 代码插入表单并将其显示在配置文件中,或者如果他们可以注入在从服务器返回时执行的代码,那么他们可以利用服务器并使用它来发起自己的攻击。

SQL 注入的问题又回到了 [代码] 实现以及表单允许(和盲目处理)的事物类型。例如,如果您可以\'在当前情况下转义单引号,那么有人可以UNION在拉取查询时打开和关闭 SQL 语句,也可能是他们自己的语句。如果他们可以关闭该语句并附加另一个语句,他们可能会添加delete from users where 1=1或类似的东西。另一种方法可能是,如果您可以输入<marquee>Test</marquee>并在找不到任何结果时打印“测试”一词,那么您可以执行注入,因为它不会剥离代码。

这一切都导致了权限。服务器上的权限应该使网站前端的用户只能访问他们需要的权限级别。如果他们只是查询数据库 ( SELECT),他们不应该访问INSERT, UPDATE, DROP TABLES, 或DELETE.

于 2013-06-28T05:42:32.510 回答