我需要一些帮助。
假设我使用 sql 注入方法来获取网站的数据库名称,并设法从表中获取所有数据,是否可以更改这些数据而无需使用基本的 sql 客户端在服务器上进行识别?
谢谢你。
(我希望答案对所有数据库类型都是通用的,但如果不是,则相关数据库的版本是 mysql)
我需要一些帮助。
假设我使用 sql 注入方法来获取网站的数据库名称,并设法从表中获取所有数据,是否可以更改这些数据而无需使用基本的 sql 客户端在服务器上进行识别?
谢谢你。
(我希望答案对所有数据库类型都是通用的,但如果不是,则相关数据库的版本是 mysql)
这取决于授予数据库帐户的权限、Web 服务器用于连接数据库的数据库用户以及 SQL 注入漏洞的性质。
如果漏洞足够开放,允许您从所有表中提取所有数据,则该网站很可能容易受到创建和更改过程以及表上的 INSERT/UPDATE/DELETE 操作的影响。(在创建易受 SQL 注入攻击的网站时同样的疏忽和疏忽,这通常与专门用于确定数据库权限的疏忽相同......(我将只使用“root”,或者我会使用对所有对象拥有所有权限的数据库帐户...)
创建一个容易受到这种注入攻击的网站是完全有可能的,而且相对容易。
(而且 StackOverflow 问题和答案中充斥着以这种方式使网站易受攻击所需的代码示例。SQL 注入漏洞只是冰山一角......如果网站以这种方式不安全,它就是几乎可以肯定还有其他漏洞。(SQL 注入恰好是一个非常容易利用的漏洞。)
开发人员已经习惯了这些不安全的模式......
(毕竟,我正在开发的这个网站“仅用于开发/教育/我的使用/等”,“所以安全性不是问题”,或者“我将在获得所有内容后解决安全漏洞它开发、调试、测试” yada, yada, yada
...那些编写不安全代码的模式变得根深蒂固。
您通常受限于发生注入的语句的能力。但是,如果所谓的堆叠查询/语句是可能的(即一次执行多个语句),您可以注入额外的语句,然后您只限制用于连接到数据库服务器的用户的权限。
当然,您必须确保注入的片段将现有语句完成为有效语句,否则不会执行任何语句。