服务端没有过滤用户输入的恶意数据,直接把用户输入的数据当做SQL语句执行,从而影响数据库安全和平台安全。
(1)用户能够控制输入
(2)原本要执行的SQL语句,拼接了用户输入的恶意数据
(1)攻击者访问有SQL漏洞的网站,寻找注入点
(2)攻击者构造注入语句,注入语句和程序的SQL语句结合生成新的SQL语句
(3)新的SQL语句被提交到数据库中进行处理
(4)数据库执行了新的SQL语句,引发SQL注入攻击
1.万能密码:通过用户名处传入参数 'or 1=1 --进行密码登录

MYSQL系统数据库information_schema包含的三张非常重要的表:
schemata表:这个表里面存放的数据库信息,这个表里面最关键的就是schema_name列,这里面存放了所有数据库名称,查询这个列所有的值即可拿到所有数据库名

存放的就是show databases;一样的结果
columns表:这个表给出了所有表中的所有列信息,但是同时也包含了数据库名,所有表名,所有列名值对应列column_name,所有数据库名值对应列table_schema,所有表名值对应table_name列,当然此表还有其他列信息,如图,但是这里暂时只关注此三个列。

tables表:这个表给出了所有表的信息,但是同时也包含了数据库名,所有表名,所有数据库名值对应列table_schema,所有表名值对应table_name列,当然此表还有其他表的信息
