WAF攻防相关知识点总结1--信息收集中的WAF触发及解决方案

news2024/9/29 7:26:55

什么是WAF

       WAF可以通过对Web应用程序的流量进行过滤和监控,识别并阻止潜在的安全威胁。WAF可以检测Web应用程序中的各种攻击,例如SQL注入、跨站点脚本攻击(XSS)、跨站请求伪造(CSRF)等,并采取相应的措施,例如拦截请求、阻止访问、记录事件等。

常见的waf拦截页面的汇总,可以根据waf的拦截页面进行判断waf的种类

参考下面链接里面的总结

微信公众平台 (qq.com)icon-default.png?t=N7T8https://mp.weixin.qq.com/s/3uUZKryCufQ_HcuMc8ZgQQ

如图是文章中对于常见waf的拦截页面的页面的总结,当我们在进行测试的时候碰到了waf的情况,我们可根据不同waf的拦截页面去判断waf的种类

触发waf的条件--不正常的流量特征

信息收集的时候我们会进行目录扫描以获得网站的信息,这个时候我们有两种方式一种是主动收集,一种是被动收集,主动收集就是使用漏扫工具扫描网站的目录,这种方式一般会产生大量非正常的流量,一般的waf检测到这种流量后就会进行拦截封锁我们的IP,使得我们的信息收集无法进一步进行。被动收集就是使用fofa 360夸克等搜索引擎去获取网站的信息,这种方式就不需要我们主动进行扫描,而是从网站直接获得网站的相关信息从而也不会产生非正常的流量,也不会触发waf。

解决方案一:使用被动扫描

我们可以借助第三方搜索引擎去帮助我们进行信息收集,从而避免我们主动信息收集产生的恶意流量

平台推荐
1.奇安信的鹰图平台

鹰图平台 (qianxin.com)icon-default.png?t=N7T8https://hunter.qianxin.com/

2.360测绘空间

360网络空间测绘 — 因为看见,所以安全icon-default.png?t=N7T8https://quake.360.net/quake/#/index

3.fofa平台网络空间测绘,网络空间安全搜索引擎,网络空间搜索引擎,安全态势感知 - FOFA网络空间测绘系统icon-default.png?t=N7T8https://fofa.info/

fofa平台如果要使用其全部功能需要开通会员,前两个平台只需要邀请用户可以获得一定次数的使用权限

解决方式二:使用搜索引擎的爬虫头

在有的信息收集的工具中,为了避免在信息收集的过程中被网站检测到,支持以指定的头部信息进行信息收集,我们采用大型的网站的爬虫头信息加入到我们的信息收集工具中,模拟爬虫进行爬取,因为网站对于百度谷歌这样的搜索引擎的爬虫一般是允许的,因为这样有利于增加网站的曝光度给网站地带来一定的经济效益,为此,我们可以使用这种方法饶过一定的waf拦截

相关搜索引擎的爬虫头参考以下的网站

搜索引擎蜘蛛头(user-agent)大全 - 易学在线工具 (e-learn.cn)icon-default.png?t=N7T8https://www.e-learn.cn/tools/user-agent

例如7kbscan工具就支持这个功能

这样即可以指定大型网站的爬虫的形式进行爬虫去获取网站的目录相关信息,可以绕过部分WAF的检测

解决方式三:代码伪造

如果还被拦截的话我们就需要使用代码伪造正常的网站对于浏览器去对于网站进行访问检测,这样的话就需要使用代码编写来进一步将我们的请求伪造成合法的请求,消除一些工具上的流量特征

示例代码

import requests
import time

headers={
    'Connection': 'keep-alive',
    'Cache-Control': 'max-age=0',
    'Upgrade-Insecure-Requests': '1',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36',
    'Sec-Fetch-Dest': 'document',
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'Sec-Fetch-Site': 'none',
    'Sec-Fetch-Mode': 'navigate',
    'Sec-Fetch-User': '?1',
    'Accept-Encoding': 'gzip, deflate, br',
    'Accept-Language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7',
   'Cookie': 'bdshare_firstime=1581597934650; PHPSESSID=ncsajdvh39qse0qlsgqokshuc4; yx_auth=dc4fq8FAEkyiAUZ54b5zl9GGStCxXoRb1TFaAaozygMiSc5uZYHjR3gCQm%2BtKNz3bcjbTi8BRgcd%2F7LvR0lHN1j319CI6x29Z2QDI38',
}

for paths in open('php_b.txt',encoding='utf-8'):
    url='http://www.testxiaodi.fun/'
    paths=paths.replace('\n','')
    urls=url+paths
    proxy = {
        'http': 'tps686.kdlapi.com:15818',
    }
    try:
        code=requests.get(urls,headers=headers,proxies=proxy).status_code
        #req=requests.get(urls, headers=headers, proxies=proxy)
        #print(urls)
        #print(req.text)
        #time.sleep()
        print(urls+'|'+str(code))
        if code==200 or code==403:
            print(urls+'|'+str(code))
    except Exception as err:
        print('connecting error')
        time.sleep(3)

解决方案四:代理延迟

延迟就是在工具中进行简单的设置比如我们可以控制信息收集的时候流量的速度,当然如果我们想要达到最佳效果可以进行反复测试到达最佳的值

许多工具都支持这个功能,查询相关文章手册进行设置即可

解决方案五:使用代理

为了保证代理的稳定可靠性,我们可以到代理池网站上购买代理来进行操作

我们可以在网站上购买代理池,然后在工具中进行配置即可

awvs中的代理设置

goby中的代理设置

需要注意的是goby一般是进行端口探针不是走的http/https协议,一般配置为sokets协议,其他的工具也是如从,如果有代理配置的功能的话就可以进行代理设置

使用代理池的好处就是我们在进行测试的时候及时触发了waf设置的规则,网站也不会对于我们自己的主机进行封锁,他封锁的是我们使用代理池中的IP,在进行大量测试的时候,我们主机不会受到影响,我们可以使用代理池中合法的测试结果在我们的主机上进行进一步测试即可

写在最后

如有错误,请及时指出,感谢

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1396227.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python如何包含其他路径的模块

python 包含其他路径的模块: 例如目录结构: dir1 |__ init.py |__ module1.py dir2 |__ main.py main.py from dir1 import module1首先需要在 dir1 添加 init.py 文件,该文件可以是空文件。 其次需要将dir1 的父目录添加到python 解释器的&#xf…

Js-WebAPIs-事件(二)

事件监听(绑定) 什么是事件? 事件是在编程时系统内发生的动作或者发生的事情 比如用户在网页上单击一个按钮 什么是事件监听? 就是让程序检测是否有事件产生,一旦有事件触发,就立即调用一个函数做出响…

springboot 原理分析之自动配置

一、Condition Condition 是在 Spring 4.0 增加的条件判断功能,通过这个可以功能可以实现选择性的创建 Bean 操作。比如说,只有满足某一个条件才能创建这个 Bean,否则就不创建。 SpringBoot 是如何知道要创建哪个 Bean 的?比如 Sp…

一文说明白 MySQL 的 ACID 和 几种日志的关系

1、简介 我们对于MySQL 很熟悉,关于其特性都有一定的了解,但是关于一些具体的实现原理,有的小伙伴可能不太熟悉,而且这部分知识在我们互联网大厂面试中是经常涉及的,因此,本文将带你深入底层,顺…

【计算机网络】子网划分(经典基础练习题)

一、某主机IP地址为110.35.2.68,子网掩码为255.255.255.128,求网络地址? 二、有A类网络18.0.0.0的子网掩码为255.128.0.0,请问可以划分为多少个子网? 并写出每个子网的子网号? 三、将C类网119.181.25.0划分…

Docker容器添加映射端口

方式一 简单粗暴(需要等一段时间) 直接给现在容器停了(当然你要不想停也可以,只是打包会慢一点,当然我是没出意外,如果你怕出现特殊情况,那就先把容器停了),然后把这个容…

SSL证书自动化管理有什么好处?如何实现SSL证书自动化?

SSL证书是用于加密网站与用户之间传输数据的关键元素,在维护网络安全方面,管理SSL证书与部署SSL证书一样重要。定期更新、监测和更换SSL证书,可以确保网站的安全性和合规性。而自动化管理可以为此节省时间,并避免人为错误和不必要…

Oracle命令大全

文章目录 1. SQL*Plus命令(用于连接与管理Oracle数据库)2. SQL数据定义语言(DDL)命令3. SQL数据操作语言(DML)命令4. PL/SQL程序块5. 系统用户管理6. 数据备份与恢复相关命令1. SQL*Plus命令(用…

App开发——国际化多语言的实现

1.引言 我们当前正处于一个全球化的世界,所以我们开发的 App 也会有很大的概率,需要满足国际化多语言的需求。今天刚好看到有个小伙伴遇到了这个需求需要实现,这里就借此机会,简单讲解一下,在 YonBuilder移动开发 技术…

如何使用JS逆向爬取网站数据

引言: JS逆向是指利用编程技术对网站上的JavaScript代码进行逆向分析,从而实现对网站数据的抓取和分析。这种技术在网络数据采集和分析中具有重要的应用价值,能够帮助程序员获取网站上的有用信息,并进行进一步的处理和分析。 基…

golang利用redis和gin实现保存登录状态,校验登录

保存用户登录状态,一般常用的方式有两种 一、生成token,然后token保存到数据库用户表里面,每次登录的时候,自动更新,容纳后每次用的时候,去取出来校验,这种方式,数据库压力大&#…

表的增删改查CURD(基础)

🎥 个人主页:Dikz12🔥个人专栏:MySql📕格言:那些在暗处执拗生长的花,终有一日会馥郁传香欢迎大家👍点赞✍评论⭐收藏 目录 新增(Create) 全列插入 指定列…

GB/T28181-2022之图像抓拍规范解读和设计实现

技术背景 GB/T28181-2022相对2016版,对图像抓拍有了明确的界定,图像抓拍在视频监控行业非常重要, Android平台GB28181设备接入端,无需实时上传音视频实时数据的情况下,就可以抓图上传到指定的图像存储服务器上。 图像抓拍基本要…

Ubuntu20.04安装配置OpenCV-Python库并首次执行读图

一、选择三方提供的预编译包安装: 可以从官网下载 OpenCV 的安装包,编译后使用;也可以直接使用第三方提供的预编译包 安装。显然后者不需要执行编译步骤,更便捷。选择由 PyPI 提供的 OpenCV 安装包,可以在 https://py…

010-新手如何建立一个属于自己的图像处理FPGA/ZYNQ框架(自己的用着才舒服,内容非常全面!)

文章目录 前言一、图像处理框架二、图像采集输入1.常用视频流格式:Rgb565/Bayer1.RGB565数据流格式2.Bayer阵列数据流格式 2.图像预处理:时钟域同步/去马赛克/色彩空间转换/滤波1.时钟域同步2.图像去马赛克化3.色彩空间转换4.滤波 三、图像算法处理1.图像…

《世界之外》提前开测,网易打响国乙大战

1月18日,国乙市场迎来了一场大战。 原定于1月26日开服的网易新乙游《世界之外》,突然宣布在1月18日进行不删档、不限量测试,从某种意义上来说,其实就等同于提前公测。 而同一天开服的还有叠纸的全新3D乙游《恋与深空》&#xff…

【Redis】基于Token单点登录

基于Token单点登录 获取验证码 流程图 #mermaid-svg-DLGHgCofEYXVSmI5 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-DLGHgCofEYXVSmI5 .error-icon{fill:#552222;}#mermaid-svg-DLGHgCofEYXVSmI5 .error-text{f…

unocss+iconify技术在vue项目中使用20000+的图标

安装依赖 npm i unocss iconify/json配置依赖 vue.config.js文件 uno.config.js文件 main.js文件 使用 <i class"i-fa:user"></i> <i class"i-fa:key"></i>class名是 i- 开头&#xff0c;跟库名:图标名&#xff0c;那都有什么库…

Springboot+vue项目部署所有遇到的坑

https://flowus.cn/siriusx/share/0a818075-372b-4948-88af-c75c1d10ceab项目地址及笔记 Spring Boot3VUE3前后端分离项目基于Jwt的校验方案 环境搭建 安装jdk17 安装mysql server https://ubuntu.com/server/docs/databases-mysql 将服务器root账号由系统验证改为密码验证…

c语言-结构体内存对齐

文章目录 前言一、结构体内存对齐总结 前言 本篇文章介绍结构体内存对齐。 一、结构体内存对齐 定义两个结构体&#xff1a; struct S1 {char c1;int i;char c2; };struct S2 {char c1;char c2;int i; }; //输出结构体大小 int main() {printf("%u\n", sizeof(st…