美文网首页
burpsuite 工具介绍

burpsuite 工具介绍

作者: fantasy_learner | 来源:发表于2019-11-13 18:54 被阅读0次

    基础功能

    • proxy

      • 主要作用是拦截流量,并根据情况对流量做出规则替换或者手动修改

        http history 会记录 所有经过burp的流量 , 并发送给辅助模块做分析,比如 targt

      • options 相关:

        • 证书 | https

        • 修改监听端口

          • 本地端口间转发

          • 远程 主机/域名转发 | 实用性 小

          • 强制使用 ssl

          • 隐形代理

            • 在无浏览器端或者设置流量代理的应用中 代理流量的方法 | proxychain

              • 修改 /etc/host , 将目标网址指向本地

              • 修改 hostname resolution 选项 ,将接收到的请求,转发到对应的ip去

        • 对请求包和返回包做出批量修改

          • 自动修改,一些预设好的功能

          • 手动设置修改规则

            • 选定区域

            • 写正则

          • 和 repeater 的不同

            • 可以操作返回头

            • 可以对未知流量做批量替换

        • ssl pass through

          • 对指定网址 进行 ssl 直连,但是优点没有看懂...
    • repeater

      • 作用 :

        • 修改,重放包进行测试攻击

        • 查看 重点包的结果

      • 注意 repeater 的 设置选项在顶栏

      • 右上角可以设置重放包的target(host,port)

      • 设置重放时是否进行跳转follow redirections

      • change method 自己更改可能会因为一些小细节导致包出错,直接使用着用方法会更好一+点

      • 可以自动进行Url编码,空格转换成+,等等...

      • copy as curl,可以将整个Burp的包构造成curl的参数的形式请求

      • url解码和编码的快捷键,右键可以直接convert selection,进行编码和解码

      • post方法可以change body encoding,更改发包方式改成文件上传类型的

    • intruder 顶栏的设置中,可以包的内容进行替换和追加 | 自动化测试

      • 作用

        • 模糊测试 | 设置大量的payload进行模糊测试

          • 爆破 密码

          • fuzz

            • sql

            • 命令注入

        • 提取特定信息

        • 设置多种标识符

      • 攻击模式

        • sniper

          • payload位置数量 : 1

          • payload 列表数量 : 1

          • 替换方式 : 遍历payload列表

        • batteringram

          • payload 位置数量 : [:21]

          • payload 列表数量 : 1

          • 替换方式 : 遍历payload列表,所有位置值相同

        • pitchfork

          • payload 位置数量 : [:21]

          • payload 列表数量 : [:21]

          • 替换方式 : 同时遍历不同位置的payload列表 ,

            • 例如 : payloadN[index ++]
        • clusterbo,mb

          • payload 位置数量 : [:21]

          • payload 列表数量 : [:21]

          • 替换方式 : 在不同位置上依次遍历所有payload , 执行的Payload数据Payload组的乘积

            • 例如 :

              • payload 1 [a , b] , payload 2 [c , d]

                • a , c

                • a , d

                • b , c

                • b , d

      • payload 类型

        • simple list

          • 设置指定字符串,或者从多个文件中读取字符串内容
        • runtime file 运行时文件

          • 设置从指定文件中按行读取payload
        • custom iterator 自定义迭代

          • 最多8个占位,可以在不同占位设置不同的payload,从而组合成多个规则的payload
        • Character substitution 字符串替换

          • 设置字符替换规则,对内容进行枚举后,生成payload
        • bruteforcer

          • 此类 payload生成包含一个指定字符集,所有排列,特定长度的有效载荷

            • 通常用于枚举字典的生成

              Character set表示生成字典的数据集

        • Case modification 对字母大小写情况替换

          • 多种

            • no change 不变

            • to lower case 小写

            • to upper case 大写

            • to propername 首字母大写其他小写

            • to ProperName 首字母大写其他不变

        • Recursive grep 递归替换

          • 用于从服务端提取有效数据的场景

          • options (grep extract) 中设置正则抽离内容,才能为下一次请求获取数据

        • extesion-generated生成插件

          • 基于插件生成payload
        • copy otherpayload

          • 将其他位置的复制到该位置上
        • Illegal Unicode 不合法的 unicode 编码

          • 在payloads里用指定的不合法Unicode编码替换字符本身,从这些Payload列表里产生出一个或者多个有效负荷。在尝试回避基于模式匹配的输入验证时,这个有效负荷会有用的
        • Character blocks 字符串

          • 生成指定长度模式的字符,边界测试或者缓冲区溢出?
        • number 数字

          • 根据配置生成数字payload
        • dates 日期类型

          • 根据配置生成日期
        • NullPayloads 空类型

          • 空字符串 , 间隔使用 , 实际作用没想到案例

          • 这种负载类型产生的Payload,其值是一个空字符串。在攻击时,需要同样的请求反复被执行,在没有任何修改原始请求的场景下此Payload是非常有用的。它可用于各种攻击,例如cookie的序列分析、应用层Dos、或保活会话令牌是在其它的间歇试验中使用。

        • characterfrobber 字符 frobber

          • 依次修改指定字符串每个字符位置的值,测试session的有效性
        • .bitflipper bit翻转

          • 对于舍得payload 按照 bit 修改
        • usernamegenerator 用户名生成器'

        • ECB blockshuffler ECB加密块洗牌

          • 测试基于ecb加密模式的 payload
    • target

      • 在开着burp代理访问网站时,会根据访问记录进行收集分析,记录站点地图

      • 作用:

        • 手动收集站点地图

        • 分析攻击面

          • 通过不同权限用户生成的访问地图,来对比发现权限不同的影响
      • options :

        • 设置 包含规则和禁用规则

          • 可以筛选访问记录,从而获得需要的站点地图
        • 比较站点地图

          • 可以使用当前存在的站点地图,或者根据当前地图再次批量请求生成,并对请求参数做设置,从而获得不同情况下的站点地图
    • spider / scaner

      • 作用

        • 爬虫 ,层次挖掘的站点地图扫描

          • 设置多个参数,从而模拟各种情况下爬取结果
        • 简易漏扫

          • 通过 设置审计规则,黑盒判断漏洞
        • 传值可能是在path路径中,如:/a/id/1

    • Sequencer

      • 监测数据随机化质量和令牌是否可预测
    • 工具块

      • decode 解码

      • compare 比较

      • burp顶栏

        • burp collaborator外带通道 | 不是特别实用,但是临时用挺好

          • --collaborator-server,然后在顶栏打开client即可

          • 可设置 用默认的公用服务器,或者自己部署的服务器

        • burp clickbandit 点击劫持生成代码

        • burp infiltrator

          • 能够检测服务端可能存在的一些API

          • LAST交互式应用程序安全检测模式

          • save state,restore state 保存流量,恢复流量

          • 鉴权机制,检测未鉴权的接口

          • 使用方式

            • 从Burp菜单中选择 Burp Infiltrator 选项,选择应用程序类型后保存,在安装和运行Infiltrator之前不要运行应用程序。 将Infiltrator安装程序复制到应用程序的根文件夹中进行赋权并执行,执行交互完成后正常启动应用程序,最终在扫描过程中会触发一些安全报告。
        • search

          • 可以设置模式和部分,对历史数据进行查找
        • Engagement tools

          • find references 获取指定 http 消息的 refre

          • Discover content 对指定消息根据url路径进行目录和文件枚举

          • Schedule task 设置任务调度表,对指定的Url 设置多种任务并按顺序执行

          • Generate CSRF Poc , 根据选定的消息,自动生成csrf的poc内容

        • project options

          • Burp 网络连接设置(Connections)

            • platform authentication 平台身份认证

              • 自动执行到目标Web服务器的平台身份验证
            • upstream proxy server

              • 设置匹配规则,代理信息
            • socks proxy

              • 这些设置允许我们配置Burp使用SOCKS代理的方式进行所有传出的通信,但此设置只在TCP层生效
            • 代理流程

              • 本地 -> upstream proxy server - > socks server
            • timeout 超时设置

          • HTTP应答消息处理设置(HTTP)

          • SSL连接和加密设置(SSL)

          • 会话设置(Sessions)

            • 添加规则,对指定范围内的请求做出特定处理

              • 范围

                • 指定 服务器端口

                • 指定 选项卡

                  • proxy , repeater ....
              • 处理

                • Use Cookies From the Session Handling Cookie Jar

                  • 通过 cookie.jar 更新指定范围的 请求的 cookie
                • Set a Specific Cookie or Parameter Value

                  • 设定请求中特定参数的值,如果没有该参数会添加
                • Check Session Is Valid

                  • 检测当前 session 是否有效

                    • 也可以通过设置宏动作来检测session 是否有效
                  • n个请求做一次检测(n 可设置) , 如果无效,则可选择地执行下一步的动作以获得新的有效会话。动作过程可设置

                • Prompt For In-Browser Session Recovery

                  • 这个配置的动作是针对于会话失效后,从浏览器内部进行会话恢复的 ,

                    • 前提

                      • 需要将关键操作通过 proxy 代理来记录在burp里
                • Run a Macro

                  • 宏操作是一系列请求的组合动作

                  • 宏操作的设置位置 : session -> macros

                • Run a Post-Request Macro

                  • 有些时候操作依靠与上一步场景中的某些值, 比如 csrf token

                  • 通过宏操作来自动填充

                • Invoke a Burp Extension

                  • 调用插件来对会话做出处理
          • 显示设置(Display)

            • 页面风格

            • Http消息显示主要用来设置其他Burp工具组件中http消息的显示字体、高亮等形式

            • 字符集设置是为了设置http消息显示的字符集

              • 作用 : 防止乱码

              • 默认值 : 系统当前字符集

          • 其它工具设置(Misc)

            • 快捷键

            • 日志设置

            • 临时文件位置

              • burp 工作过程中产生的临时文件
            • 自动备份设置

              • 用于自动保存 burp 当前的工作状态
            • 任务队列

              • 设置任务的周期性运行
            • 性能反馈

    插件

    • 来源

      • bapp 模块

      • github PortSwigger

      • github burp collection

      • ...

    • chunk分块传输绕过waf chunk-coding-convert

    • knife,可以自动生成很多常用的payload

    • 带爆破验证码的登陆reCAPTCHA

    • content-type快速类型转换

    • xray,passsive-scan-client

    • web缓存扫描

    • 参数命令注入,可以Bypass disable_function

      <pre spellcheck="false" class="md-fences md-end-block ty-contain-cm modeLoaded" lang="" cid="n549" mdtype="fences" style="box-sizing: border-box; overflow: visible; font-family: var(--monospace); font-size: 0.9em; display: block; break-inside: avoid; text-align: left; white-space: normal; background-image: inherit; background-position: inherit; background-size: inherit; background-repeat: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(231, 234, 237); border-radius: 3px; padding: 8px 4px 6px; margin-bottom: 0px; margin-top: 0px; width: inherit;">find /tmp -iname 1 -or -exec whoami ; -quit

      注意 -exec+cmd+;+ 其中+号存在的地方,必须要有空格,分号要转义一下
      如果只使用
      find /tmp -iname 1 -exec whoami ; -quit ,那么必须查出来文件才会执行cmd,而加上-or就不需要一定要查出文件

      find -exec whoami ; 会有很多返回结果,所有要在分号后面加上“ -quit”这样就只有一条返回了

      tar zxvf 1.tar.gz --to-command=whoami 也是必须要存在tar的正常语法不能报错
      ​</pre>

    jpython,插件开发

    tip

    • 堆大小设置,插件多了之后,启动变慢,设置启动内存(利用破解版,在后面直接加参数)

      java -Xbootclasspath/p:F:\tools\burpsuite_pro_v1.7.30_sts\burp-loader-keygen.jar -jar F:\tools\burpsuite_pro_v1.7.30_sts\burpsuite_pro_v1.7.37.jar -Xms4096m -Xmx4096m -XX:PermSize=128M -XX:MaxPermSize=1024M

    • chrome和firefox上的插件自动代理

      chrome-switchsharp

      firefox-switchomage

      • 我暂时没有解决 firefox 的 https 证书设置问题
    • 抓取https需要先导入ca证书

      • 打开burp , 并开启浏览器的代理设置

      • 访问 http://burp , 点 CA Certificate 从而获得证书

      • 从浏览器的设置中导入证书 , chrome 注意 选择 受信任的根证书颁发机构

    相关文章

      网友评论

          本文标题:burpsuite 工具介绍

          本文链接:https://www.haomeiwen.com/subject/prekictx.html