我刚刚接管了网络服务的管理,今天我收到了有关此错误的用户报告。现在我不是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
我问是因为出于某种原因我没有获得访问代码的权利,之前的人坚持认为该网站是安全的,所以我需要提供一些实际上容易受到攻击的证据或事实。
提前感谢您的帮助。
答案 0 :(得分:0)
简而言之,不是......但是。
虽然这可能会提供比你更熟悉的更多信息(运行MySQL的版本,正在使用的驱动程序,以及一些关于几列的信息),但它不会像显示攻击那样让你受到攻击。整个SQL行都会。有人可能会试图盲目攻击它以获取更多信息,而且从攻击者试图进入而不是仅在日志中显示信息的角度来看,它显示任何信息的事实对你来说要糟糕得多。反馈,甚至一点点都可以帮助攻击[呃]。
如果尝试在表单中插入各种代码,您可以获得一个响应,打印您自己插入的内容,这对攻击者来说会更有利。当您插入'
时,此应用程序中断的事实让我相信它不像程序员声称的那样安全。这也可能导致攻击者寻找另一种攻击途径。如果他们可以将javascript代码插入到表单中并将其显示在配置文件中,或者如果他们可以注入从服务器返回时执行的代码,那么他们可以利用服务器并使用它来发起自己的攻击。</ p>
SQL注入的问题回到[代码]实现以及表单允许(并盲目处理)的事物类型。例如,如果您在当前情况下可以转义单引号\'
,则有人可以在提取查询时打开和关闭SQL语句,并可能UNION
自己的语句。如果他们可以关闭声明并附加另一个声明,他们可能会添加delete from users where 1=1
或其他类似的声明。另一种方法可能是你可以输入<marquee>Test</marquee>
并在没有找到结果的情况下输出单词“test”滚动,然后你可以执行注射,因为它不会剥离代码。
这一切都导致了权限。服务器上的权限应该使站点前端的用户只能访问他们需要的权限级别。如果他们只是查询数据库(SELECT
),他们就无法访问INSERT
,UPDATE
,DROP TABLES
或DELETE
。