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

2024-01-09 18:52

本文主要是介绍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绕过-信息收集之反爬虫延时代理池技术的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/588093

相关文章

Python如何获取域名的SSL证书信息和到期时间

《Python如何获取域名的SSL证书信息和到期时间》在当今互联网时代,SSL证书的重要性不言而喻,它不仅为用户提供了安全的连接,还能提高网站的搜索引擎排名,那我们怎么才能通过Python获取域名的S... 目录了解SSL证书的基本概念使用python库来抓取SSL证书信息安装必要的库编写获取SSL证书信息

Win32下C++实现快速获取硬盘分区信息

《Win32下C++实现快速获取硬盘分区信息》这篇文章主要为大家详细介绍了Win32下C++如何实现快速获取硬盘分区信息,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 实现代码CDiskDriveUtils.h#pragma once #include <wtypesbase

Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)

《Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)》本文介绍了如何使用Python和Selenium结合ddddocr库实现图片验证码的识别和点击功能,感兴趣的朋友一起看... 目录1.获取图片2.目标识别3.背景坐标识别3.1 ddddocr3.2 打码平台4.坐标点击5.图

Python如何实现PDF隐私信息检测

《Python如何实现PDF隐私信息检测》随着越来越多的个人信息以电子形式存储和传输,确保这些信息的安全至关重要,本文将介绍如何使用Python检测PDF文件中的隐私信息,需要的可以参考下... 目录项目背景技术栈代码解析功能说明运行结php果在当今,数据隐私保护变得尤为重要。随着越来越多的个人信息以电子形

C#实现系统信息监控与获取功能

《C#实现系统信息监控与获取功能》在C#开发的众多应用场景中,获取系统信息以及监控用户操作有着广泛的用途,比如在系统性能优化工具中,需要实时读取CPU、GPU资源信息,本文将详细介绍如何使用C#来实现... 目录前言一、C# 监控键盘1. 原理与实现思路2. 代码实现二、读取 CPU、GPU 资源信息1.

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬

SpringBoot使用Apache Tika检测敏感信息

《SpringBoot使用ApacheTika检测敏感信息》ApacheTika是一个功能强大的内容分析工具,它能够从多种文件格式中提取文本、元数据以及其他结构化信息,下面我们来看看如何使用Ap... 目录Tika 主要特性1. 多格式支持2. 自动文件类型检测3. 文本和元数据提取4. 支持 OCR(光学

C#实现获取电脑中的端口号和硬件信息

《C#实现获取电脑中的端口号和硬件信息》这篇文章主要为大家详细介绍了C#实现获取电脑中的端口号和硬件信息的相关方法,文中的示例代码讲解详细,有需要的小伙伴可以参考一下... 我们经常在使用一个串口软件的时候,发现软件中的端口号并不是普通的COM1,而是带有硬件信息的。那么如果我们使用C#编写软件时候,如

通过C#获取PDF中指定文本或所有文本的字体信息

《通过C#获取PDF中指定文本或所有文本的字体信息》在设计和出版行业中,字体的选择和使用对最终作品的质量有着重要影响,然而,有时我们可能会遇到包含未知字体的PDF文件,这使得我们无法准确地复制或修改文... 目录引言C# 获取PDF中指定文本的字体信息C# 获取PDF文档中用到的所有字体信息引言在设计和出

C#读取本地网络配置信息全攻略分享

《C#读取本地网络配置信息全攻略分享》在当今数字化时代,网络已深度融入我们生活与工作的方方面面,对于软件开发而言,掌握本地计算机的网络配置信息显得尤为关键,而在C#编程的世界里,我们又该如何巧妙地读取... 目录一、引言二、C# 读取本地网络配置信息的基础准备2.1 引入关键命名空间2.2 理解核心类与方法