我可以使用SQL注入来更改服务器数据库吗?

时间:2014-09-28 04:41:04

标签: mysql sql sql-server sql-injection qsqlquery

我需要一些帮助。

假设我使用sql注入方法来获取网站的数据库名称,并设法从表中获取所有数据,是否可以更改该数据而无需使用基本的SQL客户端在服务器上进行识别? / p>

谢谢。

(我希望如果答案对所有数据库类型都是通用的,但如果没有,那么数据库的版本是mysql)

2 个答案:

答案 0 :(得分:2)

这取决于授予数据库帐户的权限,Web服务器用于连接数据库的数据库用户以及SQL注入漏洞的性质。

如果漏洞足够开放以允许您从所有表中提取所有数据,则可能是网站容易受到创建和更改过程的影响,以及对表的INSERT / UPDATE / DELETE操作。 (创建易受SQL注入攻击的网站时,同样的注意力不集中和缺乏关注,这通常与致力于确定数据库权限的同样疏忽......(我将会这样做)只需使用" root",或者我将使用对所有对象拥有所有权限的数据库帐户...)

创建一个易受此类注入攻击的网站是完全可能的,而且相对容易。

(而StackOverflow的问题和答案充斥着以这种方式使网站易受攻击所需的代码类型的例子.SQL注入漏洞只是冰山一角......如果一个网站不安全方式,它几乎是一个给定的其他漏洞。(SQL注入恰好是一个非常容易利用的漏洞。)

开发人员习惯于这些不安全的模式...

(毕竟,这个我正在开发的网站"仅用于开发/教育/我的使用/等等。","所以安全性并不值得关注&# 34;或者"在我开发,调试,测试所有安全漏洞后,我将解决安全漏洞问题" yada,yada,yada

......编写不安全代码的模式变得根深蒂固。

答案 1 :(得分:0)

您通常仅限于abilities of the statement the injection occurs in。但是,如果可以使用所谓的堆栈查询/语句(即一次执行多个语句),则可以注入其他语句,然后仅限制用于连接的用户的权限到数据库服务器。

当然,您必须确保注入的片段将现有语句完成到有效语句,否则不会执行任何语句。