burpsuite的简单使用
安装
首先先下载burpsuite和keygen
burpsuite推荐从雾晓安全公众号上下载(不是打广告,我一直用的这个,一直在更新,真的挺好用的👍)
网上有很多资源,这里就不提供了
这个作者提供了资源,感谢他
https://blog.csdn.net/z1013507218/article/details/118969553
下载好后双击运行vbs脚本来运行burpsuite,然后运行keygen工具,将其中的license粘贴到里面
将这些都复制到里面后,点击下一步,然后选择手动激活
将burp的请求复制到keygen,将生成的响应复制到burp就行了
配置问题
要将burpsuite中的证书导入到浏览器中才可以使用
- 注意:若是浏览器显示您的连接不是私密连接的话导入证书就可以了,注意导入的路径不要出错
导入的路径如下,一定要是导入到受信任的根证书颁发机构
1、基本使用
安装、配置过程如果还不明白请看以下的文章
https://blog.csdn.net/weixin_43543330/article/details/106723117
一、简介
Burp Intruder是一个强大的工具,用于自动对Web应用程序自定义的攻击,Burp Intruder 是高度可配置的,并被用来在广范围内进行自动化攻击。你可以使用 Burp Intruder 方便地执行许多任务,包括枚举标识符,获取有用数据,漏洞模糊测试。合适的攻击类型取决于应用程序的情况,可能包括:缺陷测试:SQL 注入,跨站点脚本,缓冲区溢出,路径遍历;暴力攻击认证系统;枚举;操纵参数;拖出隐藏的内容和功能;会话令牌测序和会话劫持;数据挖掘;并发攻击;应用层的拒绝服务式攻击。
二、Target组件
主要包括地图、目标域、漏洞问题定义三部分
目标域设置Target Scope
当我们对某个产品进行渗透测试时,可以通过域名或者主机名去限制拦截内容,这里域名或主机名就是我们说的作用域;如果我们想限制得更为细粒度化,比如,你只想拦截login目录下的所有请求,这时我们也可以在此设置,此时,作用域就是目录。总体来说,Target Scope主要使用于下面几种场景中:
- 限制站点地图和Proxy 历史中的显示结果
- 告诉Burp Proxy 拦截哪些请求
- Burp Spider抓取哪些内容
- Burp Scanner自动扫描哪些作用域的安全漏洞
- 在Burp Intruder和Burp Repeater 中指定URL
通过Target Scope 我们能方便地控制Burp 的拦截范围、操作对象,减少无效的噪音。在Target Scope的设置中,主要包含两部分功能:允许规则和去除规则。
其中允许规则即表示包含在此规则列表中的,视为操作允许、有效。如果此规则用于拦截,则请求消息匹配包含规则列表中的将会被拦截;反之,请求消息匹配去除列表中的将不会被拦截
四、Intruder的4种攻击类型
模式 | 作用 |
---|---|
sniper(狙击手模式) | 一个位置使用一组payload集合 |
Battering ram(攻城锤模式) | 在多个位置使用相同的payload集合 |
Pitchfork(草叉模式) | 就是每个位置的遍历指定的payload |
Cluster bomb(集束炸弹模式) | 适合爆破用户名密码,第一个位置的paylaod匹配第二位置的每个payload |
2、高级使用
过滤
这里的过滤可以分为抓取的时候过滤和在历史记录中过滤
抓取过滤
1、定义只抓取指定域名的网站的包
例如:只抓取csdn的包
如上图,打开proxy -> Option -> Intercept Client Requests,然后添加就行了
过滤历史包
打开Target -> Site map,然后点击Filter,然后可以选择要显示的项目
title:注意
可以右击选Add to Scope,然后就可以添加到Scope中(也就是选择的范围中,可以在其他模块里用到)
设置上游代理
title:应用场景
要使用其他的代理,然后用burpsuite抓包的时候
例如:
1、使用代理上网
2、使用xray联动burp扫描等等
title:详细设置步骤
1、上网用burpsuite抓包
首先配置burpsuite的抓包代理:
- 设置proxy(代理)
不用变,默认是代理8080端口

- 在浏览器中设置代理:
这里使用谷歌浏览器的SwitchyOmega插件切换代理
将代理改成127.0.0.1:8080,设置如下:

- 设置burp中的上游代理:
打开burpsuite的user options(用户选项)选项卡,然后选择Upstream Proxy Server(上游代理服务)
然后配置如下

里面的IP地址和端口就是梯子的IP和端口
然后就可以经过梯子的流量直接抓包了,如下:

插件使用
导入插件
从GitHub上下载到本地后如下操作即可
常用的插件使用
HachBar插件
项目地址:
https://github.com/portswigger/hackbar
我的主要用途是利用它的万能密码模块
Burp - Turbo Intruder
Turbo Intruder
基础使用总结,把Python代码都记录下,要是有啥骚姿势,求各位师傅交流。
个人感觉超强的一款Burp插件,反正超快
Link: https://github.com/PortSwigger/turbo-intruder/,https://youtu.be/vCpIAsxESFY,https://portswigger.net/research/turbo-intruder-embracing-the-billion-request-attack
视频里有讲解底层原理
Install#
Extender -> BApp Store -> Turbo Intruder
Or
手动下载 -> 导入
https://github.com/PortSwigger/turbo-intruder/
我是选择的这种办法,网太垃圾的原因吧,Store里install一直装不上
基础使用#
选择爆破点 -> 加载字典 -> Attack
要看和普通burp里的intruder的速度差距自己试试就知道了哈哈
既然这么快,那么挖掘任意用户注册和登录是不是很爽呢,以后补挖掘案例(2020.11.24,12:14)
提升速度#
pipeline学过http request smuggling的应该都知道是啥了吧(手动滑稽)
爆破user&pass
from urllib import quote
def password_brute(target,engine):
for word in open('F:/Tools/Dict/fuzzDicts-master/top10.txt'):
engine.queue(target.req, quote(word.rstrip()))
def user_brute(target,engine):
for word in open('F:/Tools/Dict/fuzzDicts-master/top10.txt'):
engine.queue(target.req, quote(word.rstrip()))
def user_password_brute(target, engine):
for password in open('F:/Tools/Dict/fuzzDicts-master/top10.txt'):
for user in open('F:/Tools/Dict/fuzzDicts-master/top10.txt'):
engine.queue(target.req, [quote(user.rstrip()),quote(password.rstrip())])
def queueRequests(target, wordlists):
engine = RequestEngine(endpoint=target.endpoint,
concurrentConnections=5,
requestsPerConnection=100,
pipeline=True
)
#user_brute(target,engine)
#password_brute(target,engine)
user_password_brute(target,engine)
def handleResponse(req, interesting):
# currently available attributes are req.status, req.wordcount, req.length and req.response
if req.status == 200:
table.add(req)
爆破数字验证码#
最后的数字假如是4位验证码就传4,6就是6
from itertools import product
def brute_veify_code(target, engine, length):
pattern = '1234567890'
for i in list(product(pattern, repeat=length)):
code = ''.join(i)
engine.queue(target.req, code)
def queueRequests(target, wordlists):
engine = RequestEngine(endpoint=target.endpoint,
concurrentConnections=30,
requestsPerConnection=100,
pipeline=True
)
brute_veify_code(target, engine, 6)
def handleResponse(req, interesting):
# currently available attributes are req.status, req.wordcount, req.length and req.response
if 'error' not in req.response:
table.add(req)
不做演示了
并发漏洞
这个就直接实战吧 哈哈