• SQL盲注注入


    盲注是注入的一种,指的是在不知道数据库返回值的情况下对数据中的内容进行猜测,实施SQL注入。盲注一般分为布尔盲注和基于时间的盲注和报错的盲注。本次主要讲解的是基于布尔的盲注。

    Length()函数 返回字符串的长度

    Substr()截取字符串

    Ascii()返回字符的ascii码

    sleep(n):将程序挂起一段时间 n为n秒

    if(expr1,expr2,expr3):判断语句 如果第一个语句正确就执行第二个语句如果错误执行第三个语句

    当然如果上面的函数被禁用,也有相应的函数替换。可百度

    布尔型

    页面只返回True和False两种类型页面。利用页面返回不同,逐个猜解数据

    http://127.0.0.1/less-8?id=1'and (length(database()))>10 --+

    当前数据库database()的长度大于10,返回true页面,否则FALSE页面

    报错型:构造payload让信息通过错误提示回显出来,一种类型(其它的暂时不怎么了解)是先报字段数,再利用后台数据库报错机制回显(跟一般的报错区别是,一般的报错注入是爆出字段数后,在此基础通过正确的查询语句,使结果回显到页面;后者是在爆出字段数的基础上使用能触发SQL报错机制的注入语句)

    列如典型payload:

    Select 1,count(*),concat(0x3a,0x3a,(select user()),0x3a,0x3a,floor(rand(0)*2))a from information_schema.columns group by a;
    

    count()计数

    concat()连接字符

    floor()重复数据,返回0,1两个值

    group by 进行分组

    rand(0)避免数据重复造成的错误

    时间型

    通过页面沉睡时间判断

    通过 sleep()函数测试,通过if()sleep()联合逐个猜解数据

    http://127.0.0.1/less-9?id=1' and (if(ascii(substr(database(),1,1))>100,sleep(10),sleep(4)) --+

  • 相关阅读:
    关于通用对象和通用函数的设计思想
    用ROOT 身份打开 文件管理器的 命令
    hibernate深入学习笔记
    hibernate简括
    hibernate先删除数据,紧接着执行插入时的异常解决之道——中间不能调用flush()、clear()等方法
    Maximum Gap (ARRAY SORT)
    Evaluate Reverse Polish Notation (STRINGTYPE CONVERTION)
    Max Points on a Line (HASH TABLE
    PHPnow实现多端口服务配置
    mcrypt 在 Linux 安装
  • 原文地址:https://www.cnblogs.com/zztac/p/11366882.html
Copyright © 2020-2023  润新知