渗透学习笔记(五)burpsuite(全)

功能介绍

1.简介

Burp Suite 是一款极为强大且广受欢迎的集成化 Web 应用安全测试工具,由多个协同运作的模块组成,旨在助力安全从业者、渗透测试人员以及安全爱好者全面剖析目标 Web应用的安全性,精准探测各类潜在漏洞,无论是简单的小型网站,还是复杂的大型企业级 Web 系统,它都能大显身手。

2.主要功能组件

Proxy(代理)

它是 Burp Suite 的核心组件之一。通过配置浏览器或其他客户端使用 Burp Suite 的代理服务器,它能够拦截并查看客户端和服务器之间传输的 HTTP/S 请求和响应.例如,当你在浏览器中访问一个网站时,请求会先被 BurpSuite 的代理捕获。这使得安全测试人员可以查看请求中的详细信息,如请求方法(GET、POST等)、URL、请求头(包含如 Vser-Agent、Cookie 等重要信息)和请求体(对于 POST请求等包含提交的数据)。同时,也能查看服务器返回的响应,包括响应状态码、响应头和响应体。可以对这些请求和响应进行修改后再转发,这对于测试输入验证、SQL注入、跨站脚本攻击(XSS)等漏洞非常有用。比如,在测试 SQL注入时,可以在请求的参数中修改数据,看服务器是否会执行恶意的 SQL语句。

Spider(爬虫)

这个组件用于自动发现 Web 应用程序的内容和功能。它会从一个起始 URL 开始,像一个真正的搜索引擎爬虫一样,递归地搜索链接、表单等内容。例如,如果你给它一个网站的首页 URL,它会顺着页面中的链接去访问其他页面,并且能够识别表单提交的目标 URL从而发现更多的页面路径。这有助于安全测试人员全面了解应用程序的结构,确保不会遗漏任何可能存在漏洞的页面可以根据自定义的规则进行爬行,如限制爬行的深度、范围等,以更好地适应不同的测试场景。

Scanner(扫描器)特征匹配

它能够自动检测 Web 应用程序中的各种安全漏洞。它会根据内置的漏洞检测规则和技术,对通过代理或蜘蛛发现的目标应用程序进行扫描。例如,它可以检测常见的漏洞,如 SQL 注入漏洞、跨站脚本攻击(XSS)漏洞、文件包含漏洞等。在扫描过程中,它会发送一系列经过精心构造的测试请求,然后分析服务器的响应来判断是否存在漏洞.扫描器会生成详细的扫描报告,指出发现的漏洞的位置、类型和风险等级,帮助安全测试人员快速定位和修复问题。不过,扫描器也不是万能的,有些复杂的漏洞可能需要手动测试来发现。

Intruder(入侵者)

Intruder是用于执行各种攻击,如暴力破解密码、枚举目录和文件等的工具。它允许安全测试人员通过配置攻击载荷(Payoads)来对目标进行攻击。例如,在进行密码暴力破解时,可以将用户名作为一个固定参数,密码字段作为攻击载荷的位置。然后选择合适的密码字典作为攻击载荷,Intruder 会自动发送一系列请求,尝试不同的密码组合,通过观察服务器的响应来判断是否成功登录。它还可以用于测试参数的边界值,通过修改参数的值范围来发现潜在的漏洞,比如整数溢出漏洞等。

Repeater(中继器)

主要用于手动修改和重新发送单个请求。安全测试人员可以在 Repeater 中获取从代理拦截的请求,或者自己手动构建请求。例如,当发现一个可疑的请求时,可以将其发送到Repeater 中,然后对请求中的参数进行修改,如修改一个用户 ID 参数的值,再次发送请求,观察服务器的不同响应,从而判断该参数是否存在安全风险,如越权访问等问题

Decoder(解码器)

用于对数据进行编码和解码操作。在 Web 应用程序安全测试中,经常会遇到需要对数据进行编码转换的情况,如URL编码、Base64 编码等例如,当遇到一个经过 Base64 编码的敏感信息(如用户凭证)在请求或响应中时,可以使用 Decoder将其解码,查看原始内容。同时,也可以对自定义的数据进行编码,以模拟一些特殊的攻击场景,如构造经过编码的恶意脚本进行XSS 测试。

Comparer

功能:用于比较两个不同的请求、响应或者其他数据之间的差异。这在安全测试中非常有用,例如,当你修改了一个请求参数并重新发送后,可以使用 Comparer 来查看响应内容与原始响应有哪些不同之处。应用场景:比如在测试文件上传功能时,比较正常文件上传和恶意文件上传(如包含恶意脚本的文件)后的服务器响应差异,以此来判断是否存在安全漏洞。它可以比较的数据包括 HTTP 消息头、消息体、XML 数据、JSON 数据等多种格式。

Sequencer(序列器)

功能:主要用于分析应用程序会话令牌(SessionTokens)或其他重要数据的随机性和可预测性。它通过收集和分析大量的令牌样本,来评估这些数据是否足够安全。应用场景:例如,对于一个基于会话的 Web 应用程序,通过 Sequencer 来检查会话令牌是否是随机生成的,还是存在可预测的模式。如果令牌是可预测的,那么攻击者就有可能劫持其他用户的会话,从而获取非法访问权限。常可以帮助发现如会话固定、令牌预测等安全隐患。

Extender(扩展器)

功能:这是一个允许用户扩展 Burp Suite 功能的组件。可以通过编写自定义的插件或者加载第三方插件来添加新的功能。这些插件可以是用于新的漏洞检测方法、特定协议的处理或者其他个性化的安全测试需求。应用场景:安全研究社区经常会开发一些新的插件来针对最新出现的漏洞类型或者特定行业应用的安全测试。例如,针对某种新型的物联网协议的安全测试插件,通过加载到Extender 中,可以让 Burp Suite 具备检测该协议相关安全漏洞的能力。

Logger(记录器)

功能:它用于记录所有通过代理的请求和响应的详细信息。这些记录可以在后续的分析中发挥作用,例如,当你需要回顾整个测试过程中某个特定功能的请求和响应情况时,Logger 中的记录就可以提供完整的数据。应用场景:在一个复杂的 Web 应用程序测试中,可能涉及到大量的交互操作。通过 Logger 可以完整地保存所有相关的信息,便于在发现问题后进行回溯和分析,找出可能导致漏洞的操作步骤或者数据传输情况。

Target(目标)

功能:它用于定义和管理测试目标。可以添加、删除和编辑目标网站的相关信息,包括目标的范围(如特定的 URL路径范围)、目标的状态(是否正在测试等)等。应用场景:在对多个 Web 应用程序或者一个大型 Web 应用程序的不同模块进行测试时,通过 Target 组件可以有效地组织和区分不同的测试目标,确保测试工作的系统性和针对性。例如,在一个企业级应用中,不同的子系统可能有不同的安全要求,通过 Target 可以分别定义这些子系统为不同的目标进行独立测试。

2.应用场景

安全审计

企业的安全团队可以使用 Burp Suite 对公司内部开发的Web 应用程序进行安全审计。通过全面扫描和手动测试发现潜在的安全漏洞,在应用程序上线前将风险降到最低。

渗透测试

专业的渗透测试人员可以稀用 Burp Suite 的各种工具,模拟黑客攻击的方式,对目标 Web 应用程序进行渗透测试。从信息收集(通过 Spider)到漏洞利用(通过 Intruder等),为客户提供详细的安全评估报告。

安全研究

安全研究人员可以使用 Burp Suite 深入研究 Web 应用程序的安全机制和漏洞类型。通过对不同应用程序的测试,发现新的漏洞或者验证新的攻击技术的有效性。

3.版本许可证

版本

Burp Suite 有免费版和专业版。免费版提供了基本的功能,如代理和简单的手动测试工具,对于初学者学习和小型项目的初步安全检查有一定的帮助。专业版则提供了更强大的功能,如高级扫描器、更丰富的攻击载荷等,适合专业的安全测试和审计工作。

许可证

购买专业版许可证后,可以获得软件的更新和技术支持。同时,许可证的使用也需要遵守相关的使用规定,如只能用于合法的安全测试目的,不能用于恶意攻击等非法活动。在使用 Burp Suite 时,也需要注意其合法性。

安装破解

原来已安装过,所以没贴图

1.安装jdk17

2.cmd 输出java(查看java是否已经被安装)
(查看java版本)

3.java -version

4.运行burp2021.9.1 一路点击安装即可

5.运行 burpsuiteloader

6.点击此电脑 c盘 用户 admin 查看 隐藏项目

7.appdata local burpsuitepor 把 burpsuiteloader 复制粘贴过头刷新运行 burpsuiteloader run 运行

8.把 license 复制到 key中点击next点击manualactivation

copy request 到aetivation request

把它复制到 paste9.然后burp会生成aetivation request一路运行esponse next芯行

10.点击 help license 关闭burp

11.新建文本文档 burpsuite 查看栏打开文件后缀名 重命名为 bat文件

12.写入破解 汉化程序
@echo off
C://
cd C:\Users\admin\AppData\Local\BurpSuitePro

start javaw -Dfile.encoding=utf-8 -

javaagent:BurpSuite_cn.jar -noverify -

javaagent:BurpSuiteLoader.jar -jar burpsuite pro. jar

decoder comparer logger模块使用

decoder

功能:编码解码等操作

举例:
URL 编码解码:假设在 Burp Suite 中截获一个 URL 编码的字符串"%3Cscript%3Ealert(1)%3C%2Fscript%3E"。在Decoder 模块中进行URL 解码,得到" "这就很容易看出这可能是一个XSSS(跨站脚本攻击)尝试的恶意脚本。

应用场景:
分析 HTTP 请求中的参数。如果请求参数是编码的,解码后查看是否存在恶意输入,如 SQL 注入或 XSS 攻击的内容。

logger

功能:Burp Logger 模块主要用于记录通过 Burp Suite 代理的网络流量它能够详细地记录 HTTP 请求和响应的各种信息,包括请求方法(如GET、POST 等)、请求的 URL、请求头(如 User-Agent、ContentType 等)、请求体内容、响应状态码(如 200、404 等)、响应头和响应体等。这些记录对于安全测试人员来说是非常宝贵的资源,能够帮助他们分析应用程序的行为、追踪潜在的安全漏洞以及重现测试过程。

comparer

比对包的差异,便于学习含漏洞的包,积累经验

常见用法及漏洞测试理论

抓包 可以筛选状态码,包类型

改包

发包

丢包

history历史包筛选

敏感端口

了解数据包的组成,如下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#数据-方法&头部&状态码

-方法

1、常规请求-Get

2、用户登录-Post

•get:向特定资源发出请求(请求指定页面信息,并返回实体主体);

•post:向指定资源提交数据进行处理请求(提交表单、上传文件),又可能导致新的资源的建立或原有资源的修改;

•head:与服务器索与get请求一致的相应,响应体不会返回,获取包含在小消息头中的原信息(与get请求类

似,返回的响应中没有具体内容,用于获取报头);

•put:向指定资源位置上上传其最新内容(从客户端向服务器传送的数据取代指定文档的内容),与post的区别是put为幂等,post为非幂等;

•trace:回显服务器收到的请求,用于测试和诊断。trace是http8种请求方式之中最安全的l

•delete:请求服务器删除request-URL所标示的资源*(请求服务器删除页面)

•option:返回服务器针对特定资源所支持的HTML请求方法 或web服务器发送*测试服务器功能(允许客户 端查看服务器性能);

•connect : HTTP/1.1协议中能够将连接改为管道方式的代理服务器

-参数

演示:

1、UA头-设备平台(包含设备类型浏览器版本等信息)

2、Cookie-身份替换

见上图

-Response状态码(200 文件存在 404 not found 文件不存在 403 文件夹存在 500 可能存在或不存在 3XX 可能存在或不存在)

1、数据是否正常

2、文件是否存在

3、地址自动跳转

4、服务提供错误

注:容错处理识别

•-1xx:指示信息—表示请求已接收,继续处理。

•-2xx:成功—表示请求已经被成功接收、理解、接受。

•-3xx:重定向—要完成请求必须进行更进一步的操作。(3xx重定向存在或不存在 1.容错处理 网站访问错误自动跳转某个页面,如跳到首页–> 文件不存在 2.访问某个文件,自动触发跳转 --> 文件存在)

•-4xx:客户端错误—请求有语法错误或请求无法实现。

•-5xx:服务器端错误—服务器未能实现合法的请求。

•200 OK:客户端请求成功

•301 redirect:页面永久性移走,服务器进行重定向跳转;

•302 redirect:页面暂时性移走,服务器进行重定向跳转,具有被劫持的安全风险;

•400 BadRequest:由于客户端请求有语法错误,不能被服务器所理解;

•401 Unauthonzed:请求未经授权。

•403 Forbidden:服务器收到请求,但是拒绝提供服务。

•404 NotFound:请求的资源不存在,例如,输入了错误的URL;

•500 InternalServerError:服务器发生不可预期的错误,无法完成客户端的请求;

•503 ServiceUnavailable:服务器当前不能够处理客户端的请求(工具:御剑 扫网站下目录的状态码)

抓包可以看到更多的攻击面

web抓包与app渗透测试

抓包方式

1.打开内置浏览器

2.建立代理

代理抓包

1.首先要把接口端口设置好

2.把证书安装好

手机端抓包

安装模拟器

导入burp证书

在WLAN里面设置代理 跟本机ip一致

burp设置监听相应ip端口

以上实验之前已经做过,就不贴图了

暴力破解与验证码识别

插件安装

在github官网下载

下载地址:f0ng/captcha-killer-modified: captcha-killer的修改版,支持关键词识别base64编码的图片,添加免费ocr库,用于验证码爆破,适配新版Burpsuite

在这里插入图片描述

下载插件jdk

Release 0.24.6 · f0ng/captcha-killer-modified

在这里插入图片描述

然后下载环境依赖 pip install -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com ddddocr aiohttp

在这里插入图片描述

添加burpsuite扩展

在这里插入图片描述

通过python启动

在这里插入图片描述

启动成功

然后在burpsuite里面爆破

1.找到对应验证码地址,右键打开

在这里插入图片描述

2.抓包

把包发送到插件

然后分别填写好指定值

在这里插入图片描述

intruder里面修改参数,这是爆破位置

在这里插入图片描述

第一个参数添加字典,载荷为简单列表

在这里插入图片描述

第二个参数,用插件爆破

在这里插入图片描述

在这里插入图片描述

开始爆破

​![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=assets%2Fimage-20241207214933-ne21ubf.png&pos_id=img-Cq1i16yT-1734099182939)

炮台实现

Zmap

1.安装

kali安装

sudo apt update​ 更新一下先

sudo apt install zmap

zmap --version​ 查看是否安装成功

mkdir zmap​ 创建一个文件夹

2.爬取

sudo zmap -p 80 -o raw_ips.txt​ 要有root权限

-p 端口

-o 输出文件

Proxy.py这段代码是把目标文件中的ip转换成带端口号的格式,并生成一个新文件InProxyPool.txt

import requests
from concurrent.futures import ThreadPoolExecutor, as_completed
import threading
指定输入和输出文件路径
raw_input_file = 'raw_ips.txt'  # 原始包含逗号的IP文件
processed_output_file = 'ip.txt'  # 替换逗号后的IP文件
available_proxy_file_path = 'InProxyPool.txt'  # 可用代理输出文件
多个验证URL,包含国内和国外常见网站,用于更严格地验证代理IP是否可用
test_urls = [
'http://www.baidu.com',
'http://www.jd.com/',
'http://www.taobao.com/'
]
线程锁
lock = threading.Lock()
标记是否是第一次写入可用代理文件,初始化为True表示第一次
first_write = True
def replace_comma_with_colon(input_file, output_file):
"""
替换文件中逗号为冒号,并保存到新文件。
"""
with open(input_file, 'r') as file:
lines = file.readlines()
# 替换逗号为冒号
modified_lines = [line.replace(',', ':').strip() for line in lines]
# 写入新的文件,'w'模式会自动清空原有内容再写入
with open(output_file, 'w') as file:
for line in modified_lines:
file.write(line + '\n')
print(f"IP格式处理完成,结果已保存到 {output_file}")
def test_proxy(proxy):
"""
测试单个代理IP是否可用,通过多个URL验证,只有全部验证通过才认定可用,并实时写入文件。
"""
global first_write
proxy = proxy.strip()  # 移除行尾的换行符
if not proxy:  # 跳过空行
return None
# 设置代理
proxies_dict = {
'http': f'http://{proxy}',
'https': f'https://{proxy}'
}
is_available = True
for url in test_urls:
try:
# 发送请求,设置超时时间为5秒
response = requests.get(url, proxies=proxies_dict, timeout=5)
if response.status_code!= 200:
is_available = False
break
except requests.RequestException as e:
is_available = False
break
if is_available:
print(f'代理IP {proxy} 可用')
with lock:
# 根据是否第一次写入来决定文件打开模式
mode = 'w' if first_write else 'a'
with open(available_proxy_file_path, mode) as file:
file.write(f'{proxy}\n')
if first_write:
first_write = False  # 第一次写入后标记设为False
return proxy
else:
print(f'代理IP {proxy} 不可用')
return None
def main():
# 第一步:处理IP文件
replace_comma_with_colon(raw_input_file, processed_output_file)
# 第二步:读取替换后的IP文件,验证代理IP
with open(processed_output_file, 'r') as file:
proxies = file.readlines()
# 使用ThreadPoolExecutor并发执行
with ThreadPoolExecutor(max_workers=20) as executor:
future_to_proxy = {executor.submit(test_proxy, proxy): proxy for proxy in proxies}
for future in as_completed(future_to_proxy):
proxy = future_to_proxy[future]
try:
future.result()  # 触发验证逻辑
except Exception as e:
print(f'代理IP {proxy} 验证过程中出现错误: {e}')
print(f"\n代理验证完成,可用代理IP已写入文件: {available_proxy_file_path}")
if name == "__main__":
main()

FinalProxy.py会读取InProxyPool.txt。检测ip是否可用,可用的话就生成一个新文件FProxies.txt,这个文件是给bp插件用的

import requests
from concurrent.futures import ThreadPoolExecutor, as_completed
import threading
最小响应包长度
MIN_LENGTH = 100
最大线程数
MAX_WORKERS = 100
输出文件路径
OUTPUT_FILE_PATH = 'FProxies.txt'
输入文件路径
input_file_path = 'InProxyPool.txt'
def check_proxy(proxy):
"""验证代理网址"""
test_url = "https://sqli-labs.bachang.org/Less-1/?id=1"  #目标url
proxies = {"http": f"http://{proxy}", "https": f"http://{proxy}"}
try:
response = requests.get(test_url, proxies=proxies, timeout=2)
if response.status_code == 200 and len(response.content) >= MIN_LENGTH:
return proxy  # 返回可用代理
except Exception:
pass
return None  # 无效代理
def validate_proxy(proxy, lock):
"""验证单个代理并写入文件"""
valid_proxy = check_proxy(proxy)
if valid_proxy:
with lock:
with open(OUTPUT_FILE_PATH, 'a') as outfile:
outfile.write(f"{valid_proxy}\n")
print(f"有效代理: {valid_proxy}")
else:
print(f"无效代理: {proxy}")
def validate_proxies_from_file(input_file_path):
"""从文件中读取代理并验证其有效性,同时将有效代理输出到另一个文件"""
lock = threading.Lock()
with open(input_file_path, 'r') as infile:
proxies = [line.strip() for line in infile]
with ThreadPoolExecutor(max_workers=MAX_WORKERS) as executor:
futures = [executor.submit(validate_proxy, proxy, lock) for proxy in proxies]
for future in as_completed(futures):
future.result()  # 等待所有任务完成
validate_proxies_from_file(input_file_path)

3.burpsuite插件安装

首先本地加载这个架包

在这里插入图片描述

然后加载这个py文件

在这里插入图片描述

就安装好了

在这里插入图片描述

ip伪造和爬虫审计

1.安装架包

wget https://repo1.maven.org/maven2/org/python/jython-standalone/2.7.2/jython-standalone-2.7.2.jar

在这里插入图片描述

2.安装插件

https://github.com/TheKingOfDuck/burpFakeIP

我这里git下太慢了,所以直接官网下压缩包

在这里插入图片描述

在这里插入图片描述

3.实例

抓包生成指定ip

在这里插入图片描述

生成本地回环地址

在这里插入图片描述

发送到intruder

设置payload

在这里插入图片描述

选择通过扩展生成

​![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=assets%2Fimage-20241212131120-fengpb6.png&pos_id=img-POivv8kg-1734099182940)

第二个选择密码字典

在这里插入图片描述

设置线程

​![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=assets%2Fimage-20241212131435-ajcjhf4.png&pos_id=img-YBZNQiiS-1734099182940)

开始爆破

​![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=assets%2Fimage-20241212131543-ah1yl0s.png&pos_id=img-zj2dZcis-1734099182940)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值