BurpSuite工具简介

本文介绍了BurpSuite,一个常用于渗透测试的工具,包括它的主要功能如拦截、修改HTTP请求、自动化测试、漏洞扫描等,以及Proxy模块、Intruder模块和Repeater模块的具体用途。此外,还详细讲述了如何配置BP,包括安装证书和浏览器代理设置,以及HTTPS包拦截和手机APP数据拦截的处理。
摘要由CSDN通过智能技术生成

补充

  • HTTP默认端口:80
  • HTTPS默认端口:443
  • 域名:
    • 协议://子域名(www).主域名(baidu.com):端口
    • 例如:http://www.baidu.com
  • BP模块的参考资料
    • portswigger.net/burp/documentation/contents

BP基本介绍

  • 官网:portswigger.net
  • BP主要功能:
    • BP主要用来做渗透测试
    • 渗透测试的目标:测试网站安全性(移动端、服务器等)
    • BP使用的主要技术:拦截、修改HTTP的请求包、自动请求、过滤响应等
    • 应用场景:SQL注入(手工注入、盲注)、文件上传(修改HTTP请求包)、XSS(检测、利用XSS漏洞)、CSRF、FUZZ(查找参数、用户名、密码、扫描目录等)、重放攻击、密码爆破、爬取数据、漏洞扫描等
  • 其他工具:(仅用于抓包、拦截HTTP请求包)
    • BP:是一个渗透测试的套件,包含多种用于做渗透测试的模块
    • Fiddler:web调试工具。主要用于抓取HTTP请求和响应包
    • Wireshark:网络封包分析工具。可将整个网络通信的数据帧显示出来。
  • BP版本:
    • 公司使用:
      • 企业版:Enterprise Edition
    • 个人使用:
      • 社区版:Community Edition(免费)
      • 专业版:Professional(收费)

BP的配置

  • BP的主程序的jar包
  • JDK
    • JRE:Java运行时所需要的环境(但JDK中包含JRE)
    • JDK:Java开发工具套件(推荐解压版zip)
  • 激活的jar包
  • 汉化的jar包

BP模块的大致介绍

  • Dashboard仪表盘
  • Proxy代理模块:
    • 在BP中设置代理。目的:拦截浏览器的HTTP数据包
    • 浏览器中设置代理,将HTTP请求发送到BP上,则BP上才会有记录
  • Intruder模块:
    • 将我们拦截到的请求(例如:一个URL地址),从URL地址或request header请求头或body中选取的某值,将它们选为攻击的字段,在利用准备好的字典进行渗透测试。
    • 可用于目录扫描、密码暴力破解、压力测试、FUZZ等
  • Repeater重放模块:
    • 重新发送HTTP请求、对HTTP请求做单步调试的模块
  • Sequencer序列器模块
  • Decoder解码器模块
  • Comparer比较器模块:对两次HTTP请求的结果进行比较
  • Logger:请求日志的HTTP访问的记录
  • Extender插件中心:

Proxy模块

浏览器的代理设置

  • 将浏览器原来发送给服务器的数据,发送到BP启动的代理服务器中,从而达到对数据包进行操作。
  • 设置代理的方式:
    • 操作系统级别的代理:win/代理/手动配置代理(设置为BP中的IP:端口)。
      • 但会将操作系统的所有的网络数据,都会发送到BP中的8080端口来【指定代理服务器(BP)的ip:端口】
      • 在BP中:设置去监听127.0.0.1:8080端口
    • 浏览器代理设置:
      • 火狐:直接下载插件
      • 谷歌:进入开发者模式后安装插件

BP代理设置

  • BP\proxy\setting中:默认监听了一个ip和端口(127.0.0.1:8080)
  • 监听此端口目的:当启动BP代理服务后,将拦截到的浏览器的HTTP请求发送到BP的这个IP和端口上。
  • intercept:拦截

BP拦截HTTPS包

  • BP拦截HTTPS包,必须先安装BP的根证书
  • 正常情况:使用浏览器直接访问HTTPS网站(服务器)时
    • 浏览器首先拿到服务器的证书,通过这个证书验证了身份以后,浏览器与服务器之间会协商一个会话密钥,当浏览器给服务器发送信息时,首先会用此密钥进行加密,服务器收到信息后,在用此会话密钥进行解密。
    • 当服务器给浏览器响应消息时,服务器先用此密钥加密发送的信息,浏览器接收到响应消息后,再用此会话密钥进行解密。
    • 所以一共进行了2次 加密-解密 过程
  • 当在浏览器与服务器之间运行了BP代理服务后,则在一个完整的通信流程中,需一共进行了4次 加密-解密 过程。
    • 首先,浏览器与BP经过身份验证后,协商出一把会话密钥。浏览器用会话密钥加密消息后在发给BP,BP收到消息后,在用浏览器与BP协商出的会话密钥进行解密,将变为明文;
    • BP再用与服务器协商好的密钥对明文加密后,发送给服务器;服务器收到消息后,在解密。
    • 服务器响应消息给BP,服务器将响应消息明文用BP与服务器之间的密钥加密,BP收到消息后,用BP与服务器之间的密钥解密,得到明文。
    • BP在用BP与浏览器协商好的密钥对明文进行加密,发送给浏览器,浏览器收到消息后,再用BP与浏览器协商好的密钥解密,得到消息。
    • 密钥:BP与浏览器之间有一个会话密钥。BP与服务器之间有一个会话密钥。
  • 当用BP对HTTPS包进行拦截时,在未安装证书时,有时会出现请求被浏览器拦截的提示。
    • 根本原因:BP软件的证书没有被操作系统信任。【情况类似于假冒网站、中间人攻击一样,是一个不受OS操作系统信任的CA颁发的证书】
    • 解决方案:在我们的操作系统中 安装BP公司的根证书:PortSwigger CA

BP拦截手机APP数据

BP模块

burp渗透测试流程

  • BP的启动配置
  • BP的proxy模块:用于运行代理服务器的拦截请求
  • BP的target模块:用来记录站点地图和定义作用域
  • BP的扫描功能:(scanner与spider模块):用来对网站进行爬取以及检测漏洞。
    • 爬虫模块:
    • 漏洞扫描模块
  • BP的repeater模块:手动的发送HTTP数据
  • BP的intruder模块:自动化发起HTTP请求

target模块

  • 作用
    • 记录所有经过BP的流量。
    • 【即在浏览器和BP设置好代理后,所有经过BP的HTTP流量】
  • 区别:
    • Proxy模块中/HTTP history:按时间顺序记录所有经过BP的流量,不管BP拦截的开关是否开启(但需提前设置好BP的监听端口127.0.0.1:8080),只要是来到了BP上8080端口的流量都会在HTTP history中出现。【E.G、浏览器中可直接得到访问百度的结果,是因为HTTP请求来到BP后,BP立即将请求发送到百度搜索的服务器,BP再将接收到的响应返回给浏览器;所以在没有开启BP拦截开关的情况下,这些经过BP的流量被记录下来】
    • target:按主机或者域名分类记录,对经过的流量进行了归纳和整理,不管BP拦截的开关是否开启。
  • Target作用域的设置:【Target/Scope】
    • 作用:即设置 记录哪些流量或不记录哪些流量到Site map中
    • 白名单:设定拦截(设定的域名)到站点地图中(Site map)
    • 黑名单:排除规则,不拦截(设定的域名)到站点地图中【即哪些域名、文件、端口等不记录到站点地图中】

BP扫描功能

  • 漏洞扫描工具:AWVS、Appscan、Nessus等

    • 本质:基于各种漏洞的特征,在工具中内置了各种探测方式,去发起一个HTTP请求,然后根据响应的结果来分析是否可能存在漏洞。
      • 【例如:以简单的SQL注入为例,上述**工具可能会在参数里加上一些特殊的SQL语句,若HTTP的响应结果中有union回显,或者有时间的延迟、或者有报错的输出等,都可以确定为存在漏洞】
    • Dashboard仪表盘:
      • (New) scan:主动扫描
      • (New) live task:被动扫描
      • crwal:爬虫
      • audit:审计(漏洞检测)
  • 扫描类型

    • 主动扫描:Actively Scan 等价于 Crawl and audit
      • crawl and audit:不仅对某网站的链接进行爬取、同时对爬取到的链接进行漏洞检测。【在爬行完后,才可进行漏洞检测[审计]任务
      • crawl:仅爬行【结果:在target模块中生成站点地图】
    • 被动扫描:Passively Scan 等价于 Live audit
      • live audit:
        • 仅对经过proxy、intruder、repeater模块的流量进行漏洞扫描[审计],不进行爬行
      • live passive crawl:
        • 访问哪些内容,则进行哪些的爬行【即点击哪个网站、便进行哪些爬行】
    • 比喻
      • 主动扫描:社区强行上门、挨家挨户的检测核酸【影响范围大】
      • 被动扫描:下飞机、高铁、高速路口后,必须做核酸检测,即经过该地方,才做核酸。【即经过BP的proxy、intruder、repeater模块,才会进行漏洞扫描】

Repeater模块

  • 用途:【主要用于web漏洞的POC漏洞的验证】
    • 用于手工的发起HTTP请求,分析响应
      • 下列情况:
      • 修改HTTP的请求头、请求体、URL的参数,想要验证漏洞【SQL注入、XSS、越权等漏洞】。此时我们需要手动发起HTTP请求,并分析其响应。
    • 重放请求:多次访问同一个地址
      • 下列情况:
      • 同一个用户是否可以重复注册等,此时我们需要手动发起HTTP请求,并分析其响应。
  • 使用方法:
    • 数据的来源:
      • 手动复制、粘贴
      • 其他模块中:右键/send to repeater【ctrl + R】

intruder模块

  • 作用:主要用于密码的爆破
  • 原理:对HTTP请求的参数名、参数值、路径名、文件名、cookie值等(即插入点)进行修改,发起大量的请求,分析响应的内容,获取特征的数据。
    • 本质:
    • 自动化发起HTTP请求。
    • 基于现成字典或生成字典填入插入点。
  • 用途:
    • 爆破:猜测用户名、密码等
    • 目录扫描功能:寻找参数、目录等
    • 枚举商品ID、验证码等
    • 模糊测试(FUZZ)等
  • intruder攻击模式
    • sniper:只能设置一个攻击字段
    • Battering ram:可以设置多个攻击字段,但只有一个payload。【将1个payload的值赋给多个攻击字段】
    • Pitchfork:可以设置多个攻击字段,也可设置多个payload值的来源。【多个payload的值与多个攻击字段按顺序一 一匹配】
    • Cluster bomb:可以设置多个攻击字段,也可设置多个payload值的来源。【交叉验证(笛卡尔积)】
  • intruder标记结果
    • Grep-Match:若匹配到响应结果中的内容,则会在响应的结果中打上勾(flag标记一下)[Intruder/Options/Grep-Match]
    • Grep-Extract:获得上一次响应结果中的内容,并作为本次HTTP请求的内容。[Intruder/Options/Grep-Extract]
  • 9
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值