当前位置: 首页 > news >正文

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

目录

    • 简要本章具体内容和安排缘由
    • 简要本课具体内容和讲课思路
    • 简要本课简要知识点和具体说明
    • 演示案例:
      • Safedog-默认拦截机制分析绕过-未开CC
      • Safedog-默认拦截机制分析绕过-开启CC
        • 总结:
      • Aliyun_os-默认拦截机制分析绕过-简要界面
      • BT(防火墙插件)-默认拦截机制分析绕过-简要界面
    • 涉及资源:

在这里插入图片描述

简要本章具体内容和安排缘由

这四块不是说所有的东西都能绕过,如果说所有的层面你都能绕过,那这个WAF还有什么存在的必要呢,我们能绕够只是说某些地方有相关防护是不安全的,我们可以绕过,不是说他所有的拦截你都能绕过,有时候我们会发现在实际情况下面,有些东西你没思路,或者你搞不了,那不代表那个东西就能绕过,可能就是绕过不了

在测试过程中每一步都会被拦截,所以我们要学习测试方法,基本上文章没有讲到的就是绕过不了或者很难绕过

简要本课具体内容和讲课思路

信息收集有很多方法,比如像前期的子域名扫描,但是有一些信息收集是不会触发WAF的,他没有和实际网站相接触,比如我们想子域名收集,资产信息收集,在现在我们可以不通过网站的扫描,就能获取,可以通过第三方接口查询网站的相关信息,并没有涉及到对网站的相关扫描,所以不会触发这个WAF,这些东西我们就不说了,能触发WAF,又比较关键的信息收集的手段,其中最重点的就是目录扫描,就是我们常说的扫他的敏感文件,是否有备份文件、敏感后台地址,是否有上传地址这些东西,这是非常重要的信息收集的东西,就是对这个网站进行目录扫描,这个是非常重要的,也是我们经常做安全测试会做的一步,利用相关的扫描工具对它的文件或者目录这种东西进行扫描探针,这一步由于是直接对网站进行扫描的,这一块是会直接触发到WAF拦截的,所以我们今天讲的就是围绕这一点进行讲解

简要本课简要知识点和具体说明

绕过分析关于WAF界面的功能介绍,然后利用fuzz模糊测试去进行测试,那些拦截,那些不拦截,在拿出来对比、探针,得到最终的结果,然后我们再根据他的结果和规则去想相应的办法,去尝试绕过

演示案例:

Safedog-默认拦截机制分析绕过-未开CC

我们先用目录扫描器对有使用安全狗的网站进行扫描,这个结果显然是假的,是一种误报,这种误报给你的错觉目录是存在,但是他压根就不存在
在这里插入图片描述
安全狗防护日志是空的可能是功能上的问题,可能是数据包压根就被安全狗阻止之外,就是说安全狗压根就没有接收到这个请求的数据包
在这里插入图片描述
使用head请求方法,会导致被安全狗拦截,可以更换成get请求方式,模拟用户用真实浏览器去请求的一个方式

这个工具默认选择head方式,是因为head的请求回复速度会比get请求方式会快,也就是说这个程序扫描的会更加快捷,但是工具和waf是可以直接拦截出来的
在这里插入图片描述

Safedog-默认拦截机制分析绕过-开启CC

我们把安全狗的等级提升一个档次,把cc攻击防护给开启
在这里插入图片描述
我们用刚才的工具再对网站进行扫描,误报就出现了
在这里插入图片描述
我们再看一下网站,他说请求过于频繁已经被拦截,CC其实是检测你的访问速度、你的来源,这些我们前面讲过是CC的大致原理
在这里插入图片描述
由于扫描工具是多线程工具、速度工具,现在请求速度过快了,因为按照正常网站访问速度来讲的话,你是不可能1秒钟或者在短时间内请求了大量数据包,这个是不现实的,这个绝对是工具,所以拦截的原因是他检测到你这个请求不是正常用户,你是工具,速度过快了

我们的绕过思路就是跟用户的访问习惯一致就可以了,我们可以采取延时扫描,设置3或者4秒,看设置多少秒的时候既能保证速度也能保证结果,这样子就是完美的

现在网站就没有拦截了,但是扫的速度有点慢,但是又不得不这样

上面这个是更改请求方式,下面这个是模拟用户请求数据包,模拟用户请求数据包多了几个参数
在这里插入图片描述
不是黑名单和白名单,那就是按他的防护规矩来,对方如果在这里把路径设置上去之后,这个路径下面的攻击就会成为白名单,这个东西就不会被拦截;同样的道理如果设置黑名单,也就是说这个东西无论你怎么搞都是死的,不会被绕过,所以这个是黑名单白名单的具体区别
在这里插入图片描述
爬虫白名单就是为了确保网站能被正常收录,安全狗的默认设置是为了正常应用和防护的兼容性,把防护等级调的高的话,可能一些正常访问也会出现误报、误拦截,这样子是会干扰正常业务的进行,所以安全狗默认设置是建立在一个平衡的层面去选择一些功能的开关的,但是有些人宁愿误报,也不愿意放过

组织搜索引擎的爬虫会导致网站的收录过低,会影响到一个网站的流量、权重这些价值信息

由于这里是爬虫白名单,爬虫进来白名单,对方是爬虫过来的就不会拦截,因为它是一个正常的,搜索引擎过来的,爬你的网站数据,给搜索引擎一个收录的结果
在这里插入图片描述
修改ua头,就可以模拟搜索引擎访问,这也是反爬虫的一个技术
在这里插入图片描述
但是扫描结果却没有出来,只能使用python脚本去模拟用户访问,然后修改UA头,才能得到结果

import requests
import timeheaders = {'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','Accept-Encoding': 'gzip, deflate, br','Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6','Cache-Control': 'max-age=0','Connection': 'keep-alive','Cookie': 'PHPSESSID=4d6f9bc8de5e7456fd24d60d2dfd5e5a','sec-ch-ua': '"Chromium";v="92", " Not A;Brand";v="99", "Microsoft Edge";v="92"','sec-ch-ua-mobile': '?0','Sec-Fetch-Dest': 'document','Sec-Fetch-Mode': 'navigate','Sec-Fetch-Site': 'none','Sec-Fetch-User': '?1','Upgrade-Insecure-Requests': '1','User-Agent': 'Mozilla/5.0 (compatible; Baiduspider-render/2.0; +http://www.baidu.com/search/spider.html)'
}for paths in open('php_b.txt', encoding='utf-8'):url = "http://127.0.0.1/pikachu"paths = paths.replace('\n', '')urls = url + pathsproxy = {'http': '127.0.0.1:7777'}try:code = requests.get(urls, headers=headers, proxies=proxy).status_code# time.sleep(3)print(urls + '|' + str(code))except Exception as err:print('connect error')time.sleep(3)

这个脚本会把数据包发送到BP,我们可以直接在BP上面看请求的内容
在这里插入图片描述
使用python脚本模拟用户访问不指向头,请求的数据包内容就是这样子
在这里插入图片描述
很明显就能看出来是python脚本在请求
我们选择用脚本去开发这些工具,是因为你自己写的脚本,你任何地方都能控制,别人的工具不提供这个给你,你就没办法了

我们之所以去学python开发,原因是不要去求别人的工具,你用别人的东西,永远是别人说怎么搞,你用自己的东西,你想怎么来就怎么来,不是说必须要开发,是很多东西,你要满足,就必须要有这个能力

用脚本跑出来的结果
在这里插入图片描述
在这里插入图片描述
实现了CC开启也能绕过,而且不用延迟,保证速度和质量的扫描结果

还可以使用代理池技术来绕过,我们可以使用网上免费的代理
在这里插入图片描述

总结:

先本地测试安全狗-默认拦截-数据包问题 (未开cc)
先本地测试安全狗-绕过拦截-更改提交方式或模拟用户
先本地测试安全狗-默认拦截-数据包问题 (开cc)
先本地测试安全狗-绕过拦截-延时或代理池或爬虫引擎

Aliyun_os-默认拦截机制分析绕过-简要界面

阿里云上也是有一些简单的防护,阿里云上面也是有付费产品和免费产品,一般你购买阿里云产品,上面也有一些免费的防护,然后他还有一个付费的防护,付费的其实也是大同小异,无非就是多了个实时监控,通知一些攻击情况

阿里云服务器扫着扫着然后就访问不了了,有时候用户访问网站,发现网站响应慢,然后刷新了几下,就被封了,阿里云的检测相当苛刻,被封一次就是1个小时了,重启服务器、在阿里云平台上进行操作都打开不了,这个规则是可能放在阿里自身内部产品里面进行控制

这个WAF绕过没有什么检测机制,没有什么界面,你也不知道它是一个什么检测机制,总的来说就是请求速度的问题,只能采用代理池或延时绕过

速度过快,阿里云该拦截还是拦截,不管你是不是搜索引擎爬虫

阿里云要延迟3秒,延迟两秒也会被封掉

BT(防火墙插件)-默认拦截机制分析绕过-简要界面

宝塔里面是有付费的插件,免费的宝塔基本上很多防护都没有,不是说他买了这些插件,他就有这些东西,他得启动起来,这些插件还是比较贵的
在这里插入图片描述
宝塔默认不买插件的话,有些自带的防护,但是防护的不太严谨,基本上就等同于没防护,但是有了这些收费的产品就不一样了

宝塔-爬虫未知,延迟可以,代理池也可以

发现你在探针敏感目录的东西,就直接拦截
在这里插入图片描述
所以我们在扫描字典里面还要再优化一下,像里面不能有bak,但是如果字典里面不能有bak,那我们扫描它还有什么意义,我们大部分扫描就是扫描它的备份文件,所以实际上有些东西还是受到了限制

我们扫描的意义就是想扫这些东西,而WAF不让我扫,我们可以采取两种方式,字典重写,把带有敏感的目录错开行写;字典变异,加上.或者空格,例如index.php.bak.或index.php.bak%20,不会影响到扫描结果

我们发现一个sql注入,我们要绕过,我们要想到免费的WAF,一个是宝塔上面还有一个套层,还有阿里云的一个套层,我们要满足所有的WAF,真的机会很小,基本上就不用看了;看上去是说WAF绕过,网上文章各种各样的绕过,牛逼的很,自己一搞,一个用的也没有,因为实战环境不会跟我们靶场环境一样,实战环境搞个两三个,只能给虐

用人工智能去识别和攻击的也有
黑盒测试发现漏洞的概率太小了

一个服务器上可能使用多款WAF,我们要绕过就要绕过所有的WAF,很多东西都会有其它因素来影响到你,你能把影响因素找到,然后进行绕过,这才行,否则的话没用,我们进行WAF绕过不仅看产品,有时候服务器上面的安全你也要考虑到,比如像阿里云就是一个很特殊的情况

涉及资源:

宝塔官网:https://www.bt.cn/
安全狗官网:http://free.safedog.cn/website_safedog.html
各大搜索引擎的User-Agent:https://www.cnblogs.com/iack/p/3557371.html

相关文章:

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

目录 简要本章具体内容和安排缘由简要本课具体内容和讲课思路简要本课简要知识点和具体说明演示案例:Safedog-默认拦截机制分析绕过-未开CCSafedog-默认拦截机制分析绕过-开启CC总结: Aliyun_os-默认拦截机制分析绕过-简要界面BT(防火墙插件)-默认拦截机制分析绕过-…...

[Markdown] Markdown常用快捷键分类汇总

文章目录 Markdown1、标题2、列表3、强调4、链接和图片5、代码和公式6、表格和任务列表7、引用8、分割线9、脚注10、目录11、注释12、定义 Markdown Markdown是一种轻量级的标记语言,可以让你用简单的语法来编写格式丰富的文档。 Markdown编辑器是一种专门用于编辑…...

uniapp自定义封装只有时分秒的组件,时分秒范围选择

说实话&#xff0c;uniapp和uview的关于只有时分秒的组件实在是不行。全是日历&#xff0c;但是实际根本就不需要日历这玩意。百度了下&#xff0c;终于看到了一个只有时分秒的组件。原地址&#xff1a;原地址&#xff0c;如若侵犯请联系我删除 <template><view clas…...

SpringBoot 中 @Transactional 注解的使用

一、基本介绍 事务管理是应用系统开发中必不可少的一部分。Spring 为事务管理提供了丰富的功能支持。Spring 事务管理分为编程式和声明式的两种方式。本篇只说明声明式注解。 1、在 spring 项目中, Transactional 注解默认会回滚运行时异常及其子类&#xff0c;其它范…...

【还不了解 Dockerfile 的同学不是好测试人】

近年来 Docker 非常火&#xff0c;想要玩好 Docker 的话 Dockerfile 是绕不开的&#xff0c;这就好比想要玩好 Linux 服务器绕不开 shell 道理是一样的。 今天我们就来聊一聊 Dockerfile 怎么写&#xff0c;那些指令到底是什么意思。 前言 一、先来看一个简单的 Dockerfile #这…...

新手一键重装系统Win10步骤教程

如果我们发现电脑上的操作系统出现很严重的问题&#xff0c;不能通过简单的操作解决&#xff0c;这时候就可以选择重新安装电脑系统&#xff0c;快速解决问题。但是&#xff0c;新手用户不具备专业的装机知识&#xff0c;不知道重装Win10系统要怎么操作&#xff1f;那么可以按照…...

Ceph源码分析-在C++中,符号““和“*“有不同的用法。

在C中&#xff0c;符号"&"和"*"有不同的用法。 "&"符号&#xff1a; 在变量声明时&#xff0c;"&"用于定义引用类型。例如&#xff1a;int a 10; int& ref a; 这里的"ref"是一个引用&#xff0c;它引用了…...

Azure AI 内容安全Content Safety Studio实战

Azure AI Content Safety 检测应用程序和服务中用户生成和 AI 生成的有害内容。 Azure AI 内容安全包括文本和图像 API&#xff0c;可用于检测有害材料。 交互式 Content Safety Studio&#xff0c;可用于查看、浏览和试用用于检测不同形式的有害内容的示例代码。 关注TechLead…...

计算机网络学习笔记(四)

文章目录 1.介绍一下HTTPS的流程。2.介绍一下HTTP的失败码。3.说一说你知道的http状态码。4. 301和302有什么区别&#xff1f;5.302和304有什么区别&#xff1f;6. 请描述一次完整的HTTP请求的过程。7.什么是重定向&#xff1f;8. 重定向和请求转发有什么区别&#xff1f;9.介绍…...

typora导出html添加目录

typora导出html添加目录 使用方法 首先要从typora导出html文件&#xff0c;之后用记事本编辑器html文件 找到文档最后面&#xff0c;如图&#xff1a; 用文字编辑类工具打开sideBar.txt&#xff0c;复制其中所有内容【内容在下面】 在如上图的位置插入所复制的内容 打开修改…...

vue3 封装一个按钮组件(可自定义按钮样式)

效果图 鼠标悬浮有对应的文字提示&#xff0c;且图标出现背景色和颜色 实现 目前提供五个固定样式的图标及三个用户自定义的图标&#xff0c;可根据需要补充 组件代码 <script setup lang"ts"> import { onMounted, PropType, reactive, ref, watch } from v…...

Docker 中使用超级用户

在docker中安装keytool产生的问题&#xff1a; sudo apt-get install openjdk-8-jre-headless bash: sudo: command not found elasticsearchd989639e3cb4:~/config/certs$ apt-get install openjdk-8-jre-headless E: Could not open lock file /var/lib/dpkg/lock-frontend …...

git打tag以及拉取tag

场景&#xff1a;某次git代码发布后定版记录&#xff0c;将发版所在的commit时候代码打上tag记录&#xff0c;方便后期切换到对应tag代码位置。 查看所有tag名 git tag// 1.1.0 // 1.0.0查看tag和描述 git tag -l -n//1.0.0 云监管一期项目完结 //1.1.0 …...

TS 36.212 V12.0.0-信道编码、复用和交织(1)-通用过程

本文的内容主要涉及TS 36.212&#xff0c;版本是C00&#xff0c;也就是V12.0.0。...

纯前端上传word,xlsx,ppt,在前端预览并下载成图片(预览效果可以,下载图片效果不太理想)

纯前端上传word,xlsx,ppt,在前端预览并下载成图片&#xff08;预览效果可以&#xff0c;下载图片效果不太理想&#xff09; 一.安装依赖二、主要代码 预览效果链接: https://github.com/501351981/vue-office 插件文档链接: https://501351981.github.io/vue-office/examples/d…...

WPS Office找回丢失的工作文件

WPS office恢复办公文件方法有两种. 1.通过备份中心可以查看近期编辑 office 历史版本进行恢复. 2.缓存备份目录可以查看编辑过的 office 文件的历史版本&#xff0c;新版本 WPS 可以在配置工具-备份清理找到&#xff0c;2019 年旧版本 WPS 可以在新建任意 office 文件-文件-选…...

【MATLAB源码-第106期】基于matlab的SAR雷达系统仿真,实现雷达目标跟踪功能,使用卡尔曼滤波算法。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 1. 雷达系统参数设定&#xff1a; - 工作频率&#xff1a;选择一个适合的工作频率&#xff0c;例如X波段&#xff08;8-12 GHz&#xff09;。 - 脉冲重复频率&#xff08;PRF&#xff09;&#xff1a;设定一个适当的PR…...

【机器学习】scikit-learn机器学习中随机数种子的应用与重现

随机数种子是为了能重现某一次实验生成的随机数而设立的&#xff0c;相同的随机数种子下&#xff0c;生成的随机数序列一样 一、随机数种子基础应用 在python中简单运用随机数种子 import random random.seed(1) a random.sample(range(0,100),10) random.seed(2) b random.…...

欧洲编程语言四巨头

从左往右&#xff0c;依次是 尼克劳斯沃斯 (Niklaus Wirth)&#xff0c;迪杰斯特拉&#xff08;Edsger Dijkstra&#xff09;&#xff0c;霍尔&#xff08;Tony Hoare&#xff09; 尼克劳斯沃斯 (Niklaus Wirth) 瑞士人&#xff0c;一生发明了8种编程语言&#xff0c;其中最著…...

检查密码(字符串)

本题要求你帮助某网站的用户注册模块写一个密码合法性检查的小功能。该网站要求用户设置的密码必须由不少于6个字符组成&#xff0c;并且只能有英文字母、数字和小数点 .&#xff0c;还必须既有字母也有数字。 输入格式&#xff1a; 输入第一行给出一个正整数 N&#xff08;≤…...

python/java环境配置

环境变量放一起 python&#xff1a; 1.首先下载Python Python下载地址&#xff1a;Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个&#xff0c;然后自定义&#xff0c;全选 可以把前4个选上 3.环境配置 1&#xff09;搜高级系统设置 2…...

对WWDC 2025 Keynote 内容的预测

借助我们以往对苹果公司发展路径的深入研究经验&#xff0c;以及大语言模型的分析能力&#xff0c;我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际&#xff0c;我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测&#xff0c;聊作存档。等到明…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序

一、开发环境准备 ​​工具安装​​&#xff1a; 下载安装DevEco Studio 4.0&#xff08;支持HarmonyOS 5&#xff09;配置HarmonyOS SDK 5.0确保Node.js版本≥14 ​​项目初始化​​&#xff1a; ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

C++.OpenGL (10/64)基础光照(Basic Lighting)

基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...

12.找到字符串中所有字母异位词

&#x1f9e0; 题目解析 题目描述&#xff1a; 给定两个字符串 s 和 p&#xff0c;找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义&#xff1a; 若两个字符串包含的字符种类和出现次数完全相同&#xff0c;顺序无所谓&#xff0c;则互为…...

Angular微前端架构:Module Federation + ngx-build-plus (Webpack)

以下是一个完整的 Angular 微前端示例&#xff0c;其中使用的是 Module Federation 和 npx-build-plus 实现了主应用&#xff08;Shell&#xff09;与子应用&#xff08;Remote&#xff09;的集成。 &#x1f6e0;️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...

Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信

文章目录 Linux C语言网络编程详细入门教程&#xff1a;如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket&#xff08;服务端和客户端都要&#xff09;2. 绑定本地地址和端口&#x…...

【从零学习JVM|第三篇】类的生命周期(高频面试题)

前言&#xff1a; 在Java编程中&#xff0c;类的生命周期是指类从被加载到内存中开始&#xff0c;到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期&#xff0c;让读者对此有深刻印象。 目录 ​…...

JS手写代码篇----使用Promise封装AJAX请求

15、使用Promise封装AJAX请求 promise就有reject和resolve了&#xff0c;就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...