网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
1.2. HTTP history(HTTP请求历史)
记录了所有被拦截的请求和响应,使用户能够查看和分析以前的请求和响应。用户可以使用过滤器来搜索特定请求和响应,以便更轻松地查找和分析流量。
1.3 WebSockets history
1.4 Option选项 (我们需要进行设置,这个最重要的,因为它可以设置我们想要的一些东西,比如说,更改设置响应包返回。拦截想要的一些包。)
- 总结下:
注意事项:
- 确保在使用Burp Suite Proxy时,代理服务器地址和端口已正确配置在浏器或其他应用程序中。2. 要注意目标应用程序的安全性,以避免对敏感数据进行拦截和篡改。3. 尽可能避免使用Burp Suite Proxy来拦截包含敏感信息的请求(如银行账户信息、密码等)。4. 对于HTTPS流量,确保证书已正确配置,并且SSL终止没有被启用。否则,Burp Suite Proxy将无法拦截HTTPS流量。
使用技巧:
- 在Proxy -> Options下,可以配置Proxy监听的端口,也可以设置Intercept选项,如拦截规则、跳过规则、处理流量大小等等。2. 在Proxy -> Intercept下,可以启用和禁用拦截器以控制哪些请求被拦截。3.在Proxy -> HTTP history下,可以查看所有的HTTP/HTTPS请求和响应。4.在Proxy -> Match and Replace下,可以使用正则表达式来替换HTTP/HTTPS请求和响应中的文本。5. 在Proxy -> Options -> Match and Replace中,可以配置替换规则以自动替换某些请求和响应的文本。
记住:这个模块要好好看看,很有用。
一个值得拥有的小技巧:
先通过BurpSuit记录所有的流量包,寻找 LFI & Path Traversal & SSRF & Open Redircet漏洞。
正则匹配
\?.*=(\/\/?\w+|\w+\/|\w+(%3A|:)(\/|%2F)|%2F|[\.\w]+\.\w{2,4}[^\w])
Repeater模块
其中的Repeater模块可以用于重放和编辑HTTP请求,方便测试人员进行手动漏洞挖掘。总的来说,Repeater模块具有一些功能:
复制请求:将已经发送的请求复制到Repeater中,方便进行重放和修改。
修改数据:可以对请求中的参数、请求方法、请求头等进行修改,从而快速定位漏洞点。
手动填写数据:可以手动填写参数数据,以便对应不同的测试场景。
发送请求:方便对修改后的请求进行重放,看响应是否符合预期。
简单来说,Burosuit中的Repeater模块就是一个手工重放模块,我们如果发现可能有问题的请求包,就发送给Repeater模块,然后构造请求包,验证是否存在问题。
2.图片简介:
GET /index.php HTTP/1.1``Host: www.taeget.com``Upgrade-Insecure-Requests: 1``User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36``Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9``Accept-Encoding: gzip, deflate``Accept-Language: zh-CN,zh;q=0.9``Connection: close
上面是一个简单请求包:
包含
1. 请求行:请求行包含三个字段,分别是请求方法、请求URI和HTTP协议版本` `请求方法:常见的HTTP请求方法有GET、POST、PUT、DELETE等,` `它们分别表示请求获取资源、提交表单数据、更新资源、删除资源等操作。` `请求URI:/index.php``2. 请求头部:请求头部包含了请求的各种附加信息,` `如请求的主机、请求的用户代理、请求的内容类型等。` `Host头,User-Agent,Accept,Accept-Encoding,Accept-Language,` `Cookie等等``3. 请求体:有些请求需要传递数据,这些数据需要包含在请求体中,` `如POST请求就常常需要在请求体中传递表单数据。
响应包:
HTTP/1.1 200 OK``Accept-Ranges: bytes``Cache-Control: max-age=86400``Content-Length: 2947``Content-Type: text/html``Date: Wed, 12 Apr 2023 08:57:04 GMT``Connection: close
上面是一个简单的响应包
1. 状态行:状态行包含三个字段,分别是HTTP协议版本、状态码和状态消息。` `状态码是指服务器返回的处理结果,` `常见的有200表示成功、` `404表示资源不存在、` `401表示未授权` `30x表示跳转,302跳转漏洞` `50x表示服务器内部错误等;``2. 响应头部:响应头部包含了响应的各种附加信息,` `如响应的日期、响应的内容类型、响应的长度,响应Cookie等等。``3. 响应体:响应体包含了服务器返回的实际数据,如HTML、JSON等格式的数据
要学习网络安全,必须要去熟悉HTTP请求协议,慢慢来吧,上面是一个简单的请求和响应。有一些骚的操作我在后面慢慢分享。
- 其他操作:
从Repeater模块的请求
Change body encoding
Copy as curl command --(一般好像是在linux上运行)
Engagement Tools -> discover content(类似于一个扫描目录的情况) 这个功能我还没怎么去使用过,又偷偷学到一招儿,
- 说点人生感悟:
真正的勇士是敢于接受平凡的自己,接受自己的平庸。尘归尘,土归土,一切都将趋于平静。归去,也无风雨也不晴。
Intruder模块
- Intruder模块
使用Intruder,您可以将不同类型的数据有效负载插入到Web应用程序中的参数中,并自动化地发起请求,以尝试发现应用程序中的任何漏洞或安全问题。例如,您可以使用Intruder来执行字典攻击、暴力破解或SQL注入等不同类型的攻击,以测试Web应用程序的安全性。
此外,Intruder还支持对多个目标同时进行攻击,从而提高测试效率。在攻击完成后,您可以使用Burp Suite的其他模块来进一步分析攻击结果,并查找成功利用漏洞的可能性。
简单的来说,Intruder模块就是一个爆破模块,爆破模块在前期打点的时候十分重要,爆破账户分分钟,对,爆破模块玩的好,贼6,有验证码,也不要怕,爆破就完事了。
- 使用
2.1 先来看看Intruder模块的样子是啥:
Intruder模块包括target ,Positions ,Payloads ,Options四部分
其中 target部分,我几乎没有动过,就是说没有什么用。
我们重点看的是Positions ,Payloads ,Options三部分
2.2 Positions
首先Intruder模块是通过$进行指定参数, 例子:username=$xxx$意思就是将你的字典会去替换这个xxx的值。
我们先去clear$ (清空当请求包发送到Intruder模块是自带的所有$),然后再通过add$ 进行添加变量值。(当初入门的时候,真的挺头大的,很多都不懂,现在好多了,希望曾经跟我一样的人少走些弯路)
Intruder模块的测试模式分为4种:Sniper(Sniper):逐个地对每个目标参数进行测试。这种方式适用于需要具体指定某个参数值进行测试的情况。Battering Ram(破城槌):选择多个不同的参数值集合作为测试数据进行并行测试,以找出所有可能的漏洞点。这种方式适用于需要大量测试数据的情况。Pitchfork(干草叉):同时对多个参数进行测试,将不同的参数组合在一起进行测试。这种方式适用于需要测试多个参数交互情况的情况。Cluster Bomb(集束炸弹):类似于Battering Ram,不同之处在于它将多个参数值集合作为测试数据,但会对每个参数集合都进行逐次的单元素组合测试。这种方式适用于需要详细测试每个参数值的情况。
(当初看着这些介绍真头大,完全看不懂)其实很简单的:
Sniper 就是爆破单个位置,你指定哪就爆破哪
如下图,就是不同的用户名,密码不变为123456。 形式如下
zhangsan 123456
lisi 123456
wangwu 123456
Battering Ram指定多个位置 他只需要你一个字典文件,所有位置的参数一样。
admin admin
1111 1111
zhangsan zhangsan
lisi lisi
Pitchfork(干草叉):一般加入两个变量值进去,比如说dict1: admin,test,root
dict2: 123456, admin123,root.形式如下
admin 123456
test admin123
root root
Cluster Bomb(集束炸弹): 一般加入两个变量值进去,比如说dict1: admin,test,root dict2: 123456, admin123,root.形式如下
admin 123456
admin admin123
admin root
test 123456
test admin123
test root
root 123456
root admin123
root root
2.3 Payloads 部分 对于payload的设置部分有很多种,反正就是记录,每一种都写一下吧
Simple list,Runtime file,Custom iterator,Character substitution,Case modification,Recursive grep,illegal Unicode,Character blocks,Numbers,Dates,Brute forcer,Null payloads,Character frobber,Bit flipper,Username generator(15种)
Simple list(简单列表):
Runtime file(通过导入文件,我个人觉得跟简单列表里面的差不多)
Custom iterator(自定义迭代)
Character substitution(字符替换)只能单个字符进行替换
Case modification(案例修改)
Recursive grep(递归grep)
注意:因为Recurisive grep 我们一般用于匹配csrf-token之类的。这就要求我们需要注意两个点:1.线程必须为单线程。2.我们是否需要设置第一个请求的token。(因为我们的token是从请求包里出来的,如果我们携带的token与此次的token不一样,就不会让你登录。即我们要去找一个正常的请求,记录它的token当初初始token进行操作。有点绕,慢慢理解)
illegal Unicode(非法的Unicode,我感觉好像晚上网上都没说清楚怎么操作呢,我是参考的一个提问的,可能也一知半解释把)
Character blocks (字符块): 这对脏数据绕waf应该有奇效。。。
Numbers (数字)
Date (日期)
Brute forcer(爆破)
Null payloads
Extension-generated (通过插件)
总算把payload设置记录完了。。
补充介绍下Add form list —内置的一些列表
补充介绍下Add form list —内置的一些列表
补充介绍下Add form list —内置的一些列表
列举了一些我觉得常用到的简单列表!!! (以前都没有仔细看过这些,学到了学到了)
------------------------------------默认的内置简单列表完-----------------------------------------------------------------------
这个Payload Processing 一般对于密码进行的操作,比如说前缀,后缀,密码的md5等等这些,转换大小写等。
这个Payload Encoding是对请求参数中的一些字符要不要进行url编码
2.4 Options 部分
Target模块 杂项模块
- Target 模块
Burp Suite的Target模块是一个用于配置目标应用程序和Web站点信息的工具。在进行渗透测试或漏洞扫描时,可以使用此模块来确定攻击目标并设置代理以拦截流量。
在Target模块中,您可以添加目标站点和端口,并指定代理设置以拦截所有传入和传出的请求和响应。您还可以配置Burp Suite的SSL证书,以便在HTTPS连接上进行拦截和分析。
另外,Target模块还提供了一些自动化工具,例如“Site map”功能,它可以在浏览网站时记录所有访问的页面和资源,并建立一个完整的站点地图。这样,您就可以更轻松地进行漏洞扫描,而无需手动导航到每个页面
- Site Map
Site map的主要作用是为您提供对站点结构和内容的全面了解,列出了站点的URL,以及每个URL的HTTP响应代码、请求和响应头信息以及其他参数。通过查看Site map,您可以快速识别站点上存在的漏洞和安全问题,Site map还支持一些自动化功能,例如通过“Spider”工具自动遍历站点并添加新页面到Site map中。
要想使用Site Map 我们必须去 Dashboard --> Crawl
它的过滤跟前面记录的过滤是一样的。
- scope (范围)
对于一些干扰的包,我们需要进行排除,或者只抓取某个厂商的包。可以通过如下进行设置。
杂项模块
- Sequencer 模块
Sequencer模块是一个用于对随机数生成器和其他类型的输入数据进行统计分析的工具。通过对输入数据进行分析,可以确定输入数据的质量并评估其安全性。可以帮助测试人员确定应用程序在使用随机数生成器时是否足够随机,以及在处理密码和其他敏感信息时是否存在可预测的模式。使用Sequencer模块,您可以捕获一组输入数据,并对它们进行分析,以确定它们之间是否存在任何相关性或模式。在进行分析之前,您可以选择从输入数据中删除任何重复项或不可见字符。简单的来说就是:通过不停的发送数据包,用来预测应用程序的session tokens或其他重要数据项是否可以预测。
Sequencer模块分为三部分:Live capture(实时捕获),Manual load(手动加载),Analysis options(分析选项)
Live capture(实时捕获)
我这边以靶场DVWA举例把,我也有点懵,涉及到统计学。
好吧,卧槽我真的懵了,算了,放一些其他大佬的讲解把:
https://blog.csdn.net/u011781521/article/details/54772888
https://t0data.gitbooks.io/burpsuite/content/chapter10.html
算了把,我放弃了,去爆破发现会话,说实话有点不现实,如果是弱会话的,我们肉眼也能发现,如果不是弱会话,测了也白搭。意义不大。
都说到这了,提一下一个思路把: 我们可以通过Sequencer模块,发送大量的请求,去获取到大量的参数(Cookie也好,一些加密的id也许,都可以)复制,排序,发现规律即可。
Dashboard模块
下面的一张图差不多可以解释清楚吧
Logger 模块
日志记录模块,有时候我们习惯删掉Proxy 中的Http History 就来这里找吧,遇见过几次,Http History记录删除了,在这里找回了
还有 Extender 模块,Projection Option模块,User Options模块,常用的bp插件没有记录。加油吧
记录看到的一个上传的bypass,可能过时了,记录着吧:
Decoder模块 Comparer模块 User Options 模块
Decoder模块
- 介绍
通过Decoder模块,用户可以将经过编码的数据还原为其原始形式,以便更好地理解其内容。同时,Decoder模块还可以将普通文本转换为编码格式,以保证数据在传输过程中的安全性和完整性。使用Burp Suite Decoder模块时,用户可以选择需要使用的编码或解码技术,并将待处理的数据输入到相应的输入框中,然后单击“Decode”或“Encode”按钮即可完成操作。
- 简单使用
Comparer模块
- 介绍
Compare模块允许比较来自两个HTTP请求或响应的数据。这对于查找潜在漏洞或检测应用程序中的不良行为非常有用。例如,如果对应用程序执行了两个相同的请求,但每次响应都略有不同,那么您可以使用比较模块来查看响应之间的差异并确定网站是否存在安全问题。比较模块还支持高级过滤器,这些过滤器可帮助您在比较大型复杂响应时快速找到差异。您还可以将比较结果导出为文本文件以进行后续分析。
- 简单使用
支持两种方式,一种是复制粘贴,一种是直接发送过去,两种方式都比较常用。
复制粘贴
在Repeater,Proxy等模块中,将请求包发送到Comparer这即可。
具体进行比较:
User Options 模块
- 介绍
User Options -> Connections -> Platform Authentication 通过这些设置,您可以将Burp配置为自动对目标web服务器执行平台身份验证。可以为各个主机配置不同的身份验证类型和凭据。平台身份验证也可以按主机禁用。支持的身份验证类型有:基本、NTLMv1和NTLMv2。域和主机名字段仅用于NTLM身份验证。当遇到身份验证失败时,平台身份验证失败提示选项会导致Burp显示一个交互式弹出窗口。(直接怼的它的介绍)
我在想是不是访问的时候,弹个框让输入密码那种,我记得那种好像是Basic凭证
User Options -> Connections -> Upstream Proxy Servers
说实话,这个选项我们会常用的上,先简单说一些利用场景吧,比如说,抓一些数据包的时候,ip被Ban,需要使用这个功能,将数据包发送代理服务器上。同样抓一些嫱外的数据包的时候,也要这样来。
User Options -> Connections -> SOCKS Proxy
这个也用的比较多,跟上面的差不多,偷偷再提一句,内网穿透…内网资产测试的时候,用的上…
User Options -> TLS -> 说实话,签名,证书之类的
TLS 选项可以让用户配置 Burp Suite 如何处理使用 TLS/SSL 加密的流量。用户可以选择是否验证服务器证书、如何验证服务器证书、是否启用 TLS 握手细节记录等。这些选项可以根据具体的需求进行调整,以便更好地进行渗透测试。
User Options -> Display 与界面显示有关的配置选项。这些选项可以让用户自定义 Burp Suite 的外观和交互方式,以便更好地适应个人偏好和工作习惯。
User Options -> Misc
Extensions模块+常见bp插件
- Extensions模块
BurpSuite的Extensions模块涉及到多个领域,例如目录枚举、暴力破解、漏洞检测、代理服务器等等。每个扩展都有其独特的功能和优势,能够帮助测试人员更快速地发现潜在的安全问题,并提供修复建议。
除了提供功能强大的插件之外,Burp Suite还支持自定义插件和扩展的开发,让用户可以根据自己的需求定制工具。Burp Suite的扩展生态系统非常庞大,拥有丰富的资源和社区支持,使得其成为了一款备受青睐的渗透测试工具。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
mg_convert/b8a6301ca72410f5cb92f2a2da686c78.png)
Extensions模块+常见bp插件
- Extensions模块
BurpSuite的Extensions模块涉及到多个领域,例如目录枚举、暴力破解、漏洞检测、代理服务器等等。每个扩展都有其独特的功能和优势,能够帮助测试人员更快速地发现潜在的安全问题,并提供修复建议。
除了提供功能强大的插件之外,Burp Suite还支持自定义插件和扩展的开发,让用户可以根据自己的需求定制工具。Burp Suite的扩展生态系统非常庞大,拥有丰富的资源和社区支持,使得其成为了一款备受青睐的渗透测试工具。
[外链图片转存中…(img-Ggrum6k7-1715534233309)]
[外链图片转存中…(img-Woz41niV-1715534233309)]
[外链图片转存中…(img-GgCrCtQ3-1715534233310)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新