CTF-web 之 burp suite 使用

 

 

burp suite 使用

一般其是作为一个辅助工具,直接使用来解题的部分是少数,我们可以使用它来观察请 求和响应,并且可以反复的提交,关键的是他还带有很多其他的功能,在我们做题的过程中, 使用的关键点包括:

1.  页面和源码无特殊信息时,可以使用抓包观察

----有无特殊字段, 泄露服务器或 flag 等信息

----对提交的 url 和数据进行观察

2.  使用 reapter 功能,重复的测试提交的数据,观察响应等

3. intruder 爆破功能, 用来进行一些密码, 验证码的爆破

4.  使用 request 的编辑功能,编辑头信息以达到题目要求

 

WEB 基础知识

 

0bc97ae3940549e996aa677b0863ebdb.png

 

具体的看图文介绍

下面就是它的设置界面, 默认的代理是 127.0.0.1  端口 8080

adf1e1b832344e349ea0377d3ae13786.png

 

我们在火狐浏览器中添加插件 foxyproxy

150937b2e31d4c04aa47f6e0ea9dee22.png

这样我们就可以方便的打开浏览器的代理,当然需要提前新建一下

94d332c85ea4412cb112b39aef7a5957.png

那么如何开始抓包呢,第一部打开浏览器代理,然后在打开 Bp 的中断就可以了

1b06483999ef46fa864a70cebbfa9dae.png

这样我们的发送和接受的数据就都会被拦截

f0121ff5bbc84b72b2dcbdae90077c55.png

Forward 是发送的意思,Drop 丢弃请求,Action 则是采取其他一些动作,比较实用之一的就 是 send to repeater|intruder

允许我们不断修改和重复的一个请求,测试中非常有用。

 

7cc2a6b9b6654e3ea7ffbcef7145eb47.png

我们可以实用 16 进制和字符的方式观察请求和响应头,支持随时修改, 重复发送, 并 且返回信息不会进入到浏览器。按钮 go 就是发送信息。

 

 

1)查看和修改 http 请求头

 

burp suite 配合火狐浏览器使用, 将两者全部设为代理并打开断点, 即可观察和修改数 据

一般用于获取请求和响应中的特殊数据, 或用于上传绕过等

使用方法:

(1)运行 Burp site,点击 Proxy 标签,确认 Options 选项卡下,Proxy listeners 的 running 运行正常(勾选状态为运行),如果端口打开失败,可能的原因是有程序

占用了该端口, 点击 edit,在 local  listener port:输入框输入一个未占用的端口,点击 update 即可。

(2)然后设置浏览器代理地址为 127.0.0.1,端口为所选端口, 设置浏览器开始代理 并 打开 burp suite 的 proxy-intercept 的 on 状态

(3)进入上传页面, 选择我们的 asp 木马,点击上传就可以看到 burp suite  已经拦截 在 proxy-intercept-Raw 就是原始数据 也可以 Hex 观察 16 进制数据

(4)鼠标对着 Raw 的内容右击,最后单击 Send To Repeater(包重放),修改之后点击 go 进行发送。

 

常见的有:

Referer 来源伪造

X-Forwarded-For:ip 伪造

User-Agent:用户代理(就是用什么浏览器什么的)

Accept-Language:语言 国家要求

Cookie 的修改

 

 

2intruder 载荷攻击

 

在我们需要大量构造载荷重复请求时 可以使用该插件,该插件可以定制数据类型, 变 化范围,以便进行大量的爆破工作, 当然我们也可以使用编写脚本

 

Burp Intruder 主要有四个选项卡组成:

 

1:Target  用于配置目标服务器进行攻击的详细信息。

2:Positions  设置 Payloads 的插入点以及攻击类型(攻击模式)。

3:Payloads  设置 payload,配置字典

4:Opetions  此选项卡包含了 request headers,request engine,attack results  ,grep match, grep_extrack ,grep payloads 和 redirections。

7c346139b349481daecd9d511d269141.png

 

Positions 的四种攻击模式

 

Sniper:这个模式会使用单一的 payload【就是导入字典的 payload】组。它会针对 每个 position  中$$位置设置 payload。这种攻击类型适合对常见漏洞中的请求参数单独地进 行测试。攻击中的请求总数应该是 position 数量和 payload 数量的乘积。

【一组 payload 独立测试每个位置, 互相没关系】

 

Battering ram   – 这一模式是使用单一的 payload 组。它会重复 payload 并且一次把 所有相同的 payload 放入指定的位置中。这种攻击适合那种需要在请求中把相同的输入放到 多个位置的情况。请求的总数是 payload 组中 payload 的总数。简单说就是一个 playload 字 典同时应用到多个 position 中。

【一组 payload 同步测试所有位置(每个位置都填相同的)】

 

Pitchfork   – 这一模式是使用多个 payload  组。对于定义的位置可以使用不同的 payload 组。攻击会同步迭代所有的 payload 组, 把 payload 放入每个定义的位置中。

【多位置, 每个位置的 payload 是一对一的,即两组 payload 的序号是同步增加】

 

Cluster bomb   – 这种模式会使用多个 payload  组。每个定义的位置中有不同的 payload 组。攻击会迭代每个 payload 组,每种 payload 组合都会被测试一遍。

【多位置, 对于两个位置的 payload,迭代所有的可能组合】

 

63dd965cfc2f4d278d2ea07d68b3c825.png

其中$$之间所夹的信息就是在测试中不断被替换的信息,我们可以编辑需要测试的 位置, 右侧有四个按钮, 也可以手动敲上去或者删除。

 

payload 设置方法

 

关于载荷的设置分为多种不同类型的数据,而后可以选择的范围也会随之变化,初 始设置为 Payload set  和 Payload type

对于常用的数字型, 我们可以选择起始 From  和终止 To  数字, 步长 Step  等,而后 number format 的 Base 会选择进制和 interger digits 整数位数和 fraction digits 小数位数等

2ad2b1bb5b7240f89892430ead1dbea9.png

点击右上角的 start attack 之后, 程序就开始运行了, 中间我们可以观察每次相应的 部分信息,点击可以查看详细的信息。一般我们通过观察长度判断是否达到了目的,因为此 时的长度与其他的不同。(下图只是示意, 并不是实战中的)

 

8c6bc6986a0d4157acc2c94f8f5e9b92.png

2018.10.24 添加

还有一个常用的破解弱口令之类的字典方法

381c8afb00c2405991e1e9cf519817bd.png

我们可以通过 ADD 增加自己编辑的字符串,可以通过 paste 粘贴复制的字符串,可 以通过 load 来读取字典,这时候就需要网上的强大的字典了 dic.txt.

 

option 选项卡包含线程设置,可用于条件竞争

 

2252bc47cbf44376add4b3acad466557.png

numbers of thread 设置线程数目,一般条件竞争时候我们是用不上 payload 的,此

时一般设置为

4fa0d8fe06d5404eaa74214e9430b8af.png

选择 null payloads 方式, 此时由于无法依靠 payload 数目来定义请求数,需要手动 输入 generate 来生成指定的数目的请求

 

3decoder encode

 

加密解密用,各种各样。

 

adce04484a2842f8b62d41e3a7eb3ada.png

下面随意举两个例题,大多数的 Bp 的使用都是很多题中的一个小小的步骤, 在这 里就不详细的讲解了,在看其他题目的时候也会涉及不少的 Bp 的使用

 

 

例题(例题来源于其他博主)

 

猫抓老鼠

 

http://ctf5.shiyanbar.com/basic/catch/

网页有一个输入框, 直接让你输入 key,源码没什么情况, 抓包可以看到许多提交的数 据

6b8bd0da2f6246969f224a793a7bb861.png

比较引人瞩目的就是提交的 passkey=1,响应中有 Content-Row: MTUxMjU4MzgwNA==, 替换 passkey 的值,request 后得到 flag。

 

头有点大

 

Game 19

要求我们使用 framework 9.9 才可以访问,使用 bp 修改头部信息,

df01e19cbc0c426c8d74391314d42239.png

得到 flag(.NET CLR 9.9)

 

 

localhost  允许

 

X-Forwarded-For: 127.0.0.1

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/387249.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++LNK1207中的 PDB 格式不兼容;请删除并重新生成

在打开别人发的C文件时,可能出现该报错 解决办法 打开资源管理器,找到原来的路径 进入Debug, 找到对应的PDB文件删除即可。

OpenAI ChatGPT 记忆功能怎么实现?

你的聊天助手现在能“记住”你的对话了! 2月14日凌晨,OpenAI宣布正在测试ChatGPT的新功能——记住用户提问内容,并自由控制内存。这意味着,ChatGPT能帮你记住那些重要的聊天内容,让你的对话更流畅、更自然。 想象一下…

政安晨:【示例演绎】【用TensorFlow编写线性分类器】—— 同时了解一点TensorFlow与Keras的基本概念

环境准备 如果小伙伴们第一次接触TensorFlow与Keras,可以先看一下我的这篇文章做些环境准备(可以先忽略这篇文章里面代码实现部分,仅查看这里的环境准备部分即可)。 文章如下: 政安晨:【详细解析】【用T…

Ps:焦点堆栈

焦点堆栈 Focus Stacking是一种摄影和图像处理技术,通过合并多张在不同焦距拍摄的照片来创建一张具有更大景深的图像,特别适用于微距摄影、风景摄影和任何需要在整个场景中保持尖锐对焦的情况。 ◆ ◆ ◆ 拍摄注意事项 1、使用三脚架 为了确保图像之间…

Spring 事务原理总结四

作为一名认知有限的中国人,我对年的喜爱,胜过其他一切,因为它给了我拒绝一切的合理理由。每到这个时候,我都会用各种理由来为自己的不作为开脱,今年亦是如此。看着频频发出警报的假期余额,我内心的焦躁变得…

VSCode无法连接远程服务器的两种解决方法

文章目录 VSCode Terminal 报错解决方式1解决方式2you are connected to an OS version that is unsupported by Visual Studio Code解决方法 VSCode Terminal 报错 直接在terminal或cmd中使用ssh命令可以连接服务器,但是在vscode中存在报错,最后一行为…

第12讲创建图文投票实现

创建图文投票实现 图文投票和文字投票基本一样&#xff0c;就是在投票选项里面&#xff0c;多了一个选项图片&#xff1b; <view class"option_item" v-for"(item,index) in options" :key"item.id"><view class"option_input&qu…

第13章 网络 Page724 asio定时器

程序代码&#xff1a; 11行&#xff0c;声明一个ios对象 13行&#xff0c;使用ios对象作为参数声明一个定时器&#xff0c;此时&#xff0c;定时器和ios完成了关联&#xff0c;后面定时器如果有任务的话&#xff0c;就可以将任务交给ios 16行&#xff0c;为定时器设置一个定…

Vue3+Vite+TS+Pinia+ElementPlus+Router+Axios创建项目

目录 初始项目组成1. 创建项目1.1 下载项目依赖1.2 项目自动启动1.3 src 别名设置vite.config.ts配置文件tsconfig.json配置若新创项目ts提示1.4 运行测试2. 清除默认样式2.1 样式清除代码下载2.2 src下创建公共样式文件夹`style`2.3 main.js中引入样式2.4 安装`sass`解析插件2…

Unity(单元测试)在STM32上的移植与应用

概述 Unity Test是一个为C构建的单元测试框架。本文基于STM32F407为基础&#xff0c;完全使用STM32CubeIDE进行开发&#xff0c;移植和简单使用Unity。 单片机型号&#xff1a;STM32F407VET6 软件&#xff1a;STM32CubeIDE Version: 1.14.1 Unity Version&#xff1a;2.…

小结与数字的魅力的开篇

小结 本系列主要介绍了一些排序算法&#xff0c;包括冒泡排序、快速排序、直接插入排序、希尔排序、简单选择排序、堆排序、归并排序、计数排序、桶排序和基数排序。 排序算法本身并不难&#xff0c;但其涉及的知识点却星罗棋布&#xff0c;其变化莫测的思路更让人难以捉摸&am…

【数据结构】哈希桶封装出map和set

利用之前的哈希桶封装出unordered_map和unordered_set。 这个封装并不简单&#xff0c;迭代器的使用&#xff0c;模板参数的繁多&#xff0c;需要我们一层一层封装。 map是一个k - v类型&#xff0c;set是k类型&#xff0c;那么就明确了如果需要封装&#xff0c;底层的tables…

Python算法探索:从经典到现代(三)

一、引言 随着信息技术的飞速发展&#xff0c;数据已经成为现代社会不可或缺的资源。Python&#xff0c;作为数据处理和分析的利器&#xff0c;为我们提供了大量强大的库和工具&#xff0c;用于从经典到现代的各种算法探索。本文将带你领略Python在算法领域的魅力&#xff0c;从…

OpenAI宣布ChatGPT新增记忆功能;谷歌AI助理Gemini应用登陆多地区

&#x1f989; AI新闻 &#x1f680; OpenAI宣布ChatGPT新增记忆功能&#xff0c;可以自由控制内存&#xff0c;提供个性化聊天和长期追踪服务 摘要&#xff1a;ChatGPT新增的记忆功能可以帮助AI模型记住用户的提问内容&#xff0c;并且可以自由控制其内存。这意味着用户不必…

mysql5.6安装---windows版本

安装包下载 链接&#xff1a;https://pan.baidu.com/s/1L4ONMw-40HhAeWrE6kluXQ 提取码&#xff1a;977q 安装视频 1.解压完成之后将其放到你喜欢的地址当中去&#xff0c;这里我默认放在了D盘&#xff0c;这是我的根目录 2.配置环境变量 我的电脑->属性->高级->环境…

今日arXiv最热NLP大模型论文:清华提出LongAlign,打破长上下文对齐瓶颈,数据、训练策略、评估基准一网打尽

随着LLMs的发展&#xff0c;其支持的上下文长度越来越长。仅一年时间&#xff0c;GPT-4就从一开始的4K、8K拓展到了128k。 128k什么概念&#xff1f;相当于一本300页厚的书。这是当初只支持512个tokens的BERT时代不敢想象的事情。 随着上下文窗口长度的增加&#xff0c;可以提…

【优化数学模型】1. 基于Python的线性规划问题求解

【优化数学模型】1. 基于Python的线性规划问题求解 一、线性规划问题1.概述2.三要素 二、示例&#xff1a;药厂生产问题三、使用 Python 绘图求解线性规划问题1.绘制约束条件2.绘制可行域3.绘制目标函数4.绘制最优解 四、使用 scipy.optimize 软件包求解线性规划问题1.导入库2.…

springboot742餐厅点餐系统

springboot742餐厅点餐系统 获取源码——》公主号&#xff1a;计算机专业毕设大全

面试前的准备

面试前的准备 Java程序员校招与社招的区别 校招和社招都是企业招聘形式的一种&#xff0c;只是面向的对象不同。校招 只允许在校生参加&#xff0c;社招理论上是任何人都能参加的(包括在校生)。 但是&#xff0c;无论是社招还是校招&#xff0c;它的难度都取决于你的水平高低。…

【Win10 触摸板】在插入鼠标时禁用触摸板,并在没有鼠标时自动启用触摸板。取消勾选连接鼠标时让触摸板保持打开状态,但拔掉鼠标后触摸板依旧不能使用

出现这种问题我的第一反应就是触摸板坏了&#xff0c;但是无意间我换了一个账户发现触摸板可以用&#xff0c;因此推断触摸板没有坏&#xff0c;是之前的账户问题&#xff0c;跟系统也没有关系&#xff0c;不需要重装系统。 解决办法&#xff1a;与鼠标虚拟设备有关 然后又从知…