sql注入可以做些什么来伤害你

时间:2015-09-05 10:05:26

标签: mysql sql database security sql-injection

以下是教科书sql注入示例:

SELECT id FROM table WHERE username = '$username' AND password = '$password'

如果您的网站无法防止sql注入,您只需输入密码= anything' OR 'x'='x作为输入并在没有密码的情况下登录。简单。

攻击者也可以传入'; DROP TABLE table;以从数据库中删除表。当然,如果sql连接具有DROP权限,那么它将无效。此外,攻击者可能希望通过做一些其他事情而不仅仅是丢弃你的桌子来获得更多好处。

所以问题是攻击者是否可以在桌面上执行UPDATE攻击,只通过攻击此漏洞获取所有表,列表或数据库的结构?

p.s:不是说我想用它来攻击别人,但我有点好奇在我的数据库中最坏的情况会发生什么......

1 个答案:

答案 0 :(得分:1)

可能,当然。如果您可以将DROP TABLE table;注入到执行的SQL语句中,您可以轻松地注入一个UPDATE语句,该语句修改了您想要的任何表的任何行。您还可以经常添加或修改SELECT语句,以向您显示您感兴趣的信息。例如,如果您有类似

的查询
select name
  from people
 where person_id = '$person'

你可以注入像

这样的东西
anything` union all select table_name from information_schema.tables

生成类似

的声明
select name
  from people
 where person_id = 'anything'
union all
select table_name
  from information_schema.tables

向您展示所有表格。您可以执行相同的操作来获取表中的列列表,然后开始运行查询以查看各个表中的数据。