作者:hacker发布时间:2022-07-13分类:破解网站浏览:139评论:1
k8s全称kubernetes,这个名字大家应该都不陌生,k8s是为容器服务而生的一个可移植容器的编排管理工具,越来越多的公司正在拥抱k8s,并且当前k8s已经主导了云业务流程,推动了微服务架构等热门技术的普及和落地,正在如火如荼的发展。想要了解更多,我推荐你去看看时速云,他们是一家全栈云原生技术服务提供商,提供云原生应用及数据平台产品,其中涵盖容器云PaaS、DevOps、微服务治理、服务网格、API网关等。大家可以去体验一下。
希望能给您提供帮助,可以给个大大的赞不。
有时候处理规模问题最好的办法就是让事情变得简单并尽你可能去避免出现这种情况。这是 GitHub 所采用的方法,林纳斯·托瓦兹(Linus Torvalds)在十年前开发了Git源代码控制工具,GitHub 为该工具提供资料库服务(repository service),目前已经有了爆炸性的发展,并成为开源软件开发工作的重心之一。
可以理解为什么程序员们会精挑细选他们创作代码用的工具并与他人分享,反过来,他们也会去调整和改进这些工具。一种非常现实的感觉就是,软件开发者们“住进”这些系统中后,源代码版本控制系统的工作方式会对合作者们的创作过程提供积极或消极的影响。
GitHub 的成立可以追溯到2007年,它的建立者包括目前公司的首席运营官(COO,Chief Operating Officer)PJ Hyett,首席执行官(CEO,Chief Executive Officer)Chris Wanstrath,前首席执行官Tom Preston-Werner,首席信息官(CIO,Chief Information Officer)Scott Chacon。这些人当时都在 Rails 框架下开发 Ruby 应用程序,并希望通过一个更好的方式合作编码,为此他们开始搭建了预计在2008年开始运行的 GitHub。与其说这是一个商业计划,他们的开发更多是为了能有一个工具帮助他们自动化地协助自己的软件开发工作。
事实证明,GitHub 是世界上最大的 Ruby on Rails 应用程序,GitHub 系统主管 reckons Sam Lambert 曾和 The Platform(译者:一家网站 ) 就该系统做过一次小的讨论。Lambert 不方便公开讨论 GitHub 有多少行代码构成,没有公司公布有多少行代码托管在 GitHub 仓库,但 Lambert 确实给我了们一些指标数据,这些数据是关于 GitHub 的使用增长情况,以及系统如何支撑为大约 60000 个机构或个人工作的 1000 万个程序员维护 2600 万个开源项目。
“基本上它就是一个简单的栈,对我们来说它真的很重要,“Lambert 说。“我们试图采用尽可能少的东西来保持这个栈的简单”。
另一方面,2008 年是创业公司的一个分界线(两年后 Amason Web Service 发布了 EC2 计算云),GitHub 可以使用云,第一次不需要在基础建设上做投资。但是,没有那么做,公司创始人和他们聘请的工程师已经绘制了技术栈草图,通过聊天工具见猎购买了一系列创造 性的系统管理,软件布署工具,基本的 IT 操作都在 GitHub 上运行。
当然,公司在 GitHub 上有自己的私有仓库来开发 GitHub。虽然 Lambert 没有透露这个构成 GitHub 的 Ruby 应用的具体大小,但是他告诉我们这个平台在 GitHub 的仓库里有25万个 commit,有上百人贡献了他们的代码和提交这些变动的 commit,尽管不是所有人都在 GitHub 工作。
项目人
“GitHub 最初是为我们自己创建的,我们基本上都是软件工程师所以我们想要一个好的工具做开发。”,Lambert 如是说道,“我们使用 GitHub 去构建 GitHub,同时这也是我们每天去管理所有事物的东西。人力资源和法律团队在他们的工作流程上也在使用 GitHub。不仅仅只是程序员在使用 GitHub。我们非常幸运能够用其他公司不一定能做的方式完成了我们的代码。如果你招一些开发者为广告系统做开发,除非他们根本不在乎讨不讨厌广告,否 则他们是不会愿意干的。而我们所有的开发人员都喜欢Git并且所有的工作都围绕着它,所以我们有为我们每天使用的工具而工作的特殊待遇。 ”
Github 栈的底端是硬件,它由几百台分布在各地数据中心的X86服务器组成。(Github 没有透露这些服务器位于何处,但 Lambert 确实说过,由于全球用户基数增长,Github 正在考虑在全球其他地区建立数据中心。)
“我们使用标准供应商的现成机器,” Lambert 说道, 但没有提及供应商的名字和配置. “我们对软件运行做了很多优化,但针对硬件我们并没有做不合适的大规模定制化。随着规模变大,我们试图让软件容错性更好,并且将数据拷贝到一次性机器上, 这样我们就用不着维修机器了。你只需要毁掉它,重新将数据放到另一台机器上。这会让购买机器变得便宜,同时扩展的成本也更低。”
“我们确实需要构建定制化和非比寻常的东西,因为一旦我们做了,我们就失去了社区正在做的东西的好处。这也告诉了我们怎么选择数据库,因为 MySQL 是每个人都在用的数据库。如果你使用它时碰到问题,这个问题别人也会碰到过,你自然不会碰到谁都无法理解的故障。”
硬件明显没有那么有趣 ——尤其对于软件工程师来说。但是 Lambert 尤其对自家开发的部署系统 GPanel 感到兴奋,它用 Ruby 开发,挂钩到 Puppet 配置工具,让公司里的任何人都可以准备机器并在上面发布软件。
“这让我们像在公有云上一样部署软件,却又允许我们享受拥有自己的硬件的所有好处。”
Github 的软件基础当然是 Linux,Lambert 也说过公司当然有足够的专家来运转自己的 Linux。但它没有这么做,而是简单地使用 Canonical Ubuntu 分布式服务器。至于存储 Git 代码和 Github 代码仓库访问控制系统的其他部分的数据库,Github 依赖 MySQL 关系数据库。Github 自己维护 Linux 和 MySQL 软件,以及 Ruby 和 Rails。Github 聘用了 Ruby 和 Rails 社区的主要维护者,因此可以推论,Github 在社区做自己的技术支持。但事实上随着应用的规模扩大,Github 同时拥有自定义版本的 Ruby 和 Rails。
Fork 代码
“当数据来临时,对我们来说真的是规模问题,我们正在使用一个高可用的方式弹性存储数据,”Lambert 说道,”它是关于适应 Git 具有可扩展性和易用性,因为它从来没有考虑过这一点。我们测量,GitHub 是最大的 Ruby on Rails 程序之一 – 许多公司都没有大规模的运行 Ruby。我们保持精益,做优化,以保持这种方式。
我们现阶段不完全,不像 Facebook 的 HipHop 和 Facebook 用 PHP 做什么,但我们有人民奉献 Ruby 的核心,使其更快和精益。”
GitHub 调整了 Ruby 解释器,并创立了自己的垃圾收集例程,但它也热衷于定位 Ruby 和 Rails 的错误尽可能快和获取代码修复到 GitHub 上,应用程序,以及输出到 Ruby 和 Rails 社区。 ( Ruby 开发托管在 GitHub 上,因为这样是为了 Rails。MySQL 的开发刚搬过来不久,用了甲骨文一些时间来做到这一点。)
GitHub 可能是开发者的机器,用于疯狂的 Fork 代码 – 好,疯狂的 Fork 代码至少 – 让 GitHub 费力也不以为奇。兰伯特解释道:
“我们保持 GitHub 作为一个 Ruby on Rails 应用程序的原因是,它是非常容易和快速的学会。人们在该公司第一天上班就开始在 Github上 工作了。我们真的很需要一个的定制的和与众不同的构建,因为如果我们这样做,我们将失去了所有社区所带来的好处。这就是告诉我们的数据库选择,因为 MySQL是每个人都在使用的。如果你遇到 MySQL 的问题,它是已知的,你不会遇到晦涩难懂并且没人知道的错误信息。没有找不到答案的奇怪错误,因为你遇到的问题,有人已经遇到过”。
GitHub 的基础设施有 Web 服务器,代理服务器,认证服务器,和一堆执行有关仓库的分析、上传提交分析、数百万托管项目分析的系统,但真正核心是存储库本身。大多数这类数据是文本, 当然,这不会占用很大的空间,相比一些更丰富照片,视频和音频媒体更能充塞互联网后面的磁盘驱动器。
奇怪的是,GitHub 没有使用传统的数据压缩方式压缩文本数据,但它有自己的压缩方式来节省空间。如果一个项目被 Fork,只在 Fork 中保存对原来的更改。 (我们假定这个方法也可以让你轻松地找出变化,在每一个 Fork 中迭代。)如果 GitHub 上保存每一个变化,每一个 Fork,它会很快有数不清的PB级数据,传统的数据压缩会系统变慢。事实证明,即使每天从程序员接受数百 GB 字节的新数据,整个 GitHub 的资源库的大小也是被度量在数百 TB 级。
在某些时候,在互联网上有很多猫的照片,所有猫的照片来自 master 猫的照片,并根据变化方式存储在 Fork 中 (译者注:这里做个比喻,形容 github 的 Fork 只存储与 Fork 之前的差别)(我们有点开玩笑。)
“有很多公司说他们已经到达 TB 和 PB 级的数据,你问他们那都是些什么数据,它们通常只是垃圾,” Lambert 笑着说。“大多大数据公司仅仅用来存储事件 —— 这些基本上都是没用的。我们非常自豪于我们一直保持着精益和优化,我们不会存储大量无用的数据。相对于我们的竞争对手,存储到仓库的比率显示了我们非常非 常地精益。我们尽可能不去存储数据,因为我们有一些非常智能的东西在后端让我们保持松散和分叉。我们有很多 Git,但我们还是会尽我们所能去优化。”
回顾 GitHub 的发展经历,从公司到老旧的学校,都可以快速简单地获取指定的存储和计算能力并启动它们。
“我们总是领先一步,我不能说是压力驱使,但我们确实有压力“Lambert 没有具体说明集群是如何快速发展的。“我们每天有数百 G 的新数据,并且仓库的使用规模快速增长,但我们创建了基础设施,可以和业务增长保持同步扩展”,这是因为我们的计划做得很好,现在也没有变慢的迹象。“
如果 GitHub 像其他 hyperscaler 一样,它的基础设施发展会滞后于推动基础设施的因素发展。很难去扩展服务,存储和用户,这也是为什么在 hyperscaler 有这么多的工程创造力。
使用公共的 Github 仓库是免费的,但是上面的代码可以被任何感兴趣的人获取和 fork。GitHub 有偿提供私有仓库,这是它计划盈利的方式。价格从 7 美元每个月的包含 5 个私有仓库的个人计划到200美元的程序员团队可共享 125 个私有仓库的商业计划。对于那些需要在内部搭建 Github 来开发代码的公司,可以购买 GitHub Enterprise 授权,售价 2,500 美元,每年可安装 10 个主机,并且跟 Github 有同样的外观。GitHub Enterprise 可以在内部主机上搭建,也可以搭建在 Amazon Web Services 或者 Microsoft Azure 公有云上。目前 GitHub 和 GitHub Enterprise 由同一个支持团队维护,但是如果你要在 GitHub Enterprise 上做内部开发并想开源到 GitHub,没有自动化的方式来完成。但 Lambert 表示存在空间。
除了核心Ruby on Rails应用程序和存储算法把GIT中的代码存放到文件服务器,GitHub也正在工作于其它应用上。 “有些技术你只是没有把它下架,因为世界上我们是最大的代码托管商,我们有很多定制领域的问题,”兰伯特说。
向前发展的其中一个重点领域是,提供了一组更丰富的关于程序员的项目分析和工作分析,因为很多公司都在使用开源软件,以此来吸引人才。这就是为什么 GitHub将扩展到新的市场,有很多变化的文档和Fork是协作过程的一部分。就像GitHub里面的团队一样,使用该工具来跟踪项目,架构师,音乐家 和其他工匠开始使用该工具,这可能为Github提供了另一波增长。
GitHub 在 2012 年的 7 月第一轮风险融,从 Andressen Horowitz 那里资筹集了 1 亿美元,和今年 7 月的第二轮融资,从红杉资本和 Andreessen Horowitz,Thrive Capital 和 Institutional Venture Partners 筹集了另外 2.5 亿美元,该公司尚未公开,但鉴于其融资的估值约为 20 亿美元,和现金增长其基础,并扩大它的目标市场。
ChatOps 文化与分布式开发
GitHub 的一个重要创新,严格的讲,不是代码部分,但绝对是公司 Hubot 的一部分,这是公司使用的一个聊天机器人系统管理接口。这种方法通常被称为 ChatOps,给部署操作起别名,通过聊天机器人,用聊天的方式做 DevOps。在 GitHub 里一切都使用它。
端口扫描
有授权的情况下直接使用 nmap 、msscan 、自己写py脚本等端口扫描工具直接获取开放的端口和获取服务端的 banner 信息。
漏洞扫描
使用北极熊扫描器、Nessus、awvs、appscan等漏扫工具直接扫描目标,可以直接看到存活主机和主机的漏洞情况。
漏洞攻击
如果只是使用端口扫描,只是发现开放的端口,在获取 banner 信息后需要在漏洞库(seebug,ExploitDB )上查找对应 CVE,后面就是验证漏洞是否存在。 安全检查一般是尽可能地发现所有漏洞,对漏洞的风险进行评估和修复。入侵的话只关注高危远程代码执行和敏感信息泄露漏洞等可以直接利用的漏洞。 漏洞验证可以找对应的 CVE 编号的 POC、EXP,利用代码在 ExploitDB 、seebug上查看或者在 github 上搜索是否有相关的漏洞验证或利用的工具。
Web应用
可以直接寻找注入、上传、代码执行、文件包含、跨站脚本、等漏洞,来进行攻击。一般可以使用 AWVS 直接扫描常见漏洞。
第一个:NST
NST一套免费的开源应用程序,是一个基于Fedora的Linux发行版,可在32和64位平台上运行。这个可启动的Live
CD是用于监视、分析和维护计算机网络上的安全性;它可以很容易地将X86系统转换为肉机,这有助于入侵检测,网络流量嗅探,网络数据包生成,网络/主机扫描等。
第二个:NMAP
NMAP是发现企业网络中任何类型的弱点或漏洞的绝佳工具,它也是审计的好工具。该工具的作用是获取原始数据包并确定哪些主机在网络的特定段上可用,正在使用什么操作系统,以及识别特定主机的数据包防火墙或过滤器的不同类型和版本正在使用。NMAP对渗透测试过程的任何阶段都很有用并且还是免费的。
第三个:BeEF工具
BeEF工具主要利用移动端的客户,它的作用是用于检查Web浏览器,对抗Web抗击。BeEF用GitHub找漏洞,它探索了Web边界和客户端系统之外的缺陷。很重要的是,它是专门针对Web浏览器的,能够查看单个源上下文中的漏洞。
第四个:Acunetix Scanner
它是一款知名的网络漏洞扫描工具,能审计复杂的管理报告和问题,并且通过网络爬虫测试你的网站安全,检测流行安全漏洞,还能包含带外漏洞。它具有很高的检测率,覆盖超过4500个弱点;此外,这个工具包含了AcuSensor技术,手动渗透工具和内置漏洞测试,可快速抓取数千个网页,大大提升工作效率。
第五个:John the Ripper
它是一个简单可快速的密码破解工具,用于在已知密文的情况下尝试破解出明文的破解密码软件,支持大多数的加密算法,如DES、MD4、MD5等。
刚接触web安全的时候,非常想找到一款集成型的渗透测试工具,找来找去,最终选择了Burp Suite,除了它功能强大之外,还有就是好用,易于上手。于是就从网上下载了一个破解版的来用,记得那时候好像是1.2版本,功能也没有现在这么强大。在使用的过程中,慢慢发现,网上系统全量的介绍BurpSuite的书籍太少了,大多是零星、片段的讲解,不成体系。后来慢慢地出现了不少介绍BurpSuite的视频,现状也变得越来越好。但每每遇到不知道的问题时,还是不得不搜寻BurpSuite的官方文档和英文网页来解决问题,也正是这些问题,慢慢让我觉得有必要整理一套全面的BurpSuite中文教程,算是为web安全界做尽自己的一份微薄之力,也才有了你们现在看到的这一系列文章。
我给这些文章取了IT行业图书比较通用的名称: 《BurpSuite实战指南》,您可以称我为中文编写者,文章中的内容主要源于BurpSuite官方文档和多位国外安全大牛的经验总结,我只是在他们的基础上,结合我的经验、理解和实践,编写成现在的中文教程。本书我也没有出版成纸质图书的计划,本着IT人互联分享的精神,放在github,做免费的电子书。于业界,算一份小小的贡献;于自己,算一次总结和锻炼。
以上,是为小记。
感谢您阅读此书,阅读过程中,如果发现错误的地方,欢迎发送邮件到 t0data@hotmail.com,感谢您的批评指正。
本书包含以下章节内容:
第一部分 Burp Suite 基础
Burp Suite 安装和环境配置
Burp Suite代理和浏览器设置
如何使用Burp Suite 代理
SSL和Proxy高级选项
如何使用Burp Target
如何使用Burp Spider
如何使用Burp Scanner
如何使用Burp Intruder
如何使用Burp Repeater
如何使用Burp Sequencer
如何使用Burp Decoder
如何使用Burp Comparer
第二部分 Burp Suite 高级
数据查找和拓展功能的使用
BurpSuite全局参数设置和使用
Burp Suite应用商店插件的使用
如何编写自己的Burp Suite插件
第三部分 Burp Suite 综合使用
使用Burp Suite测试Web Services服务
使用Burp, Sqlmap进行自动化SQL注入渗透测试
使用Burp、PhantomJS进行XSS检测
使用Burp 、Radamsa进行浏览器fuzzing
使用Burp 、Android Killer进行安卓app渗透测试
第一章 Burp Suite 安装和环境配置
Burp Suite是一个集成化的渗透测试工具,它集合了多种渗透测试组件,使我们自动化地或手工地能更好的完成对web应用的渗透测试和攻击。在渗透测试中,我们使用Burp Suite将使得测试工作变得更加容易和方便,即使在不需要娴熟的技巧的情况下,只有我们熟悉Burp Suite的使用,也使得渗透测试工作变得轻松和高效。
Burp Suite是由Java语言编写而成,而Java自身的跨平台性,使得软件的学习和使用更加方便。Burp Suite不像其他的自动化测试工具,它需要你手工的去配置一些参数,触发一些自动化流程,然后它才会开始工作。
Burp Suite可执行程序是java文件类型的jar文件,免费版的可以从免费版下载地址进行下载。免费版的BurpSuite会有许多限制,很多的高级工具无法使用,如果您想使用更多的高级功能,需要付费购买专业版。专业版与免费版的主要区别有
Burp Scanner
工作空间的保存和恢复
拓展工具,如Target Analyzer, Content Discovery和 Task Scheduler
本章主要讲述Burp Suite的基本配置,包含如下内容:
如何从命令行启动Burp Suite/br
如何设置JVM内存 大小/br
IPv6问题调试
如何从命令行启动Burp Suite
Burp Suite是一个无需安装软件,下载完成后,直接从命令行启用即可。但Burp Suite是用Java语言开发的,运行时依赖于JRE,需要提前Java可运行环境。
如果没有配置Java环境或者不知道如何配置的童鞋请参考win7电脑上的Java环境配置 配置完Java环境之后,首先验证Java配置是否正确,如果输入java -version 出现下图的结果,证明配置正确且已完成。
这时,你只要在cmd里执行java -jar /your_burpsuite_path/burpSuite.jar即可启动Burp Suite,或者,你将Burp Suite的jar放入class_path目录下,直接执行java -jar burpSuite.jar也可以启动。
==注意:your_burpsuite_path为你Burp Suite所在路径,burpSuite.jar文件名必须跟你下载的jar文件名称一致==
如何设置JVM内存 大小
如果Java可运行环境配置正确的话,当你双击burpSuite.jar即可启动软件,这时,Burp Suite自己会自动分配最大的可用内存,具体实际分配了多少内存,默认一般为64M。当我们在渗透测试过程,如果有成千上万个请求通过Burp Suite,这时就可能会导致Burp Suite因内存不足而崩溃,从而会丢失渗透测试过程中的相关数据,这是我们不希望看到的。因此,当我们启动Burp Suite时,通常会指定它使用的内存大小。 一般来说,我们通常会分配2G的内存供Burp Suite使用,如果你的电脑内存足够,可以分配4G;如果你的电脑内存足够小,你也可以分配128M。当你给Burp Suite分配足够多的内存时,它能做的工作也会更多。指定Burp Suite占用内存大小的具体配置方法是在启动脚本里添加如下命令行参数: 假设启动脚本的名称为burp_suite_start.bat,则该bat脚本的内容为
java -jar -Xmx2048M /your_burpsuite_path/burpsuite.jar
其中参数-Xmx指定JVM可用的最大内存,单位可以是M,也可以是G,如果是G为单位的话,则脚本内容为:
java -jar -Xmx2G /your_burpsuite_path/burpsuite.jar
更多关于JVM性能调优的知识请阅读 Oracle JVM Tuning
IPv6问题调试
Burp Suite是不支持IPv6地址进行数据通信的,这时在cmd控制台里就会抛出如下异常
java.net.SocketException: Permission denied
同时,浏览器访问时,也会出现异常
Burp proxy error: Permission denied: connect
当出现如上问题时,我们需要修改启动脚本,添加对IPv4的指定后,重启Burp Suite即可。
java -jar -Xmx2048M -Djava.net.preferIPv4Stack=true /your_burpsuite_path/burpsuite.jar
通过 -Djava.net.preferIPv4Stack=true参数的设置,告诉Java运行环境,使用IPv4协议栈进行数据通信,IPv6协议将会被禁止使用。 这个错误最常见于64位的windows操作系统上,使用了32位的JDK
第二章 Burp Suite代理和浏览器设置
Burp Suite代理工具是以拦截代理的方式,拦截所有通过代理的网络流量,如客户端的请求数据、服务器端的返回信息等。Burp Suite主要拦截http和https协议的流量,通过拦截,Burp Suite以中间人的方式,可以对客户端请求数据、服务端返回做各种处理,以达到安全评估测试的目的。
在日常工作中,我们最常用的web客户端就是的web浏览器,我们可以通过代理的设置,做到对web浏览器的流量拦截,并对经过Burp Suite代理的流量数据进行处理。
下面我们就分别看看IE、Firefox、Google Chrome下是如何配置Burp Suite代理的。
IE设置
当Burp Suite 启动之后,默认分配的代理地址和端口是127.0.0.1 :8080,我们可以从Burp Suite的proxy选项卡的options上查看。如图:
现在,我们通过如下步骤的设置即可完成IE通过Burp Suite 代理的相关配置。
启动IE浏览器
点击【工具】菜单,选择【Internet】选项
打开【连接】选项卡,点击【局域网设置】,进行代理设置。
在代理服务器设置的地址输入框中填写127.0.0.1,端口填写8080,点击【确定】,完成代理服务器的设置。
这时,IE的设置已经完成,你可以访问 将会看到Burp Suite的欢迎界面。
FireFox设置
与IE的设置类似,在FireFox中,我们也要进行一些参数设置,才能将FireFox浏览器的通信流量,通过BurpSuite代理进行传输。详细的步骤如下:
启动FireFox浏览器,点击【工具】菜单,点击【选项】。
在新打开的about:preferences#advanced窗口中,依次点击【高级】-【网络】,我们将会看到FireFox连接网络的设置选项。
点击【设置】,在弹出的【连接设置】对话框中,找到“http代理”,填写127.0.0.1,端口填写8080,最后点击【确认】保存参数设置,完成FireFox的代理配置。
当然,FireFox浏览器中,可以添加FireFox的扩展组件,对代理服务器进行管理。例如FireX Proxy、Proxy Swither都是很好用的组件,感兴趣的读者可以自己下载试用一下。
Google Chrome设置
Google Chrome使用Burp Suite作为代理服务器的配置步骤如下:
启动Google Chrome浏览器,在地址栏输入chrome://settings/,回车后即显示Google Chrome浏览器的配置界面
点击底部的【显示高级设置】,将显示Google Chrome浏览器的高级设置。
当然,你也可以直接在搜索框中输入“代理”,回车后将自动定位到代理服务器设置功能。
点击【更改代理服务器设置】,windows系统下将会弹出IE浏览器的代理设置,此时,按照IE浏览器的设置步骤,完成代理服务器的配置即可。
除了上述的三种常用的浏览器外,还有Safari浏览器也有不少的用户在使用,其代理配置请点击阅读进行查看。
第三章 如何使用Burp Suite代理
Burp Proxy 是Burp Suite以用户驱动测试流程功能的核心,通过代理模式,可以让我们拦截、查看、修改所有在客户端和服务端之间传输的数据。
本章主要讲述以下内容:
Burp Proxy基本使用
数据拦截与控制
可选项配置Options
历史记录History
Burp Proxy基本使用
通过上一章的学习,我们对Burp Suite代理模式和浏览器代理设置有了基本的了解。Burp Proxy的使用是一个循序渐进的过程,刚开始使用时,可能并不能很快就获取你所期望的结果,慢慢地当你熟悉了它的功能和使用方法,你就可以用它很好地对一个产品系统做安全能力评估。 一般使用Burp Proxy时,大体涉及环节如下:
首先,确认JRE已经安装好,Burp Suite可以启动并正常运行,且已经完成浏览器的代理服务器配置。
打开Proxy功能中的Intercept选项卡,确认拦截功能为“Interception is on”状态,如果显示为“Intercept is off”则点击它,打开拦截功能。
打开浏览器,输入你需要访问的URL(以为例)并回车,这时你将会看到数据流量经过Burp Proxy并暂停,直到你点击【Forward】,才会继续传输下去。如果你点击了【Drop】,则这次通过的数据将会被丢失,不再继续处理。
当我们点击【Forward】之后,我们将看到这次请求返回的所有数据。
当Burp Suite拦截的客户端和服务器交互之后,我们可以在Burp Suite的消息分析选项卡中查看这次请求的实体内容、消息头、请求参数等信息。消息分析选项视图主要包括以下四项:
Raw 这是视图主要显示web请求的raw格式,包含请求地址、http协议版本、主机头、浏览器信息、Accept可接受的内容类型、字符集、编码方式、cookie等。你可以通过手工修改这些信息,对服务器端进行渗透测试。
params 这个视图主要显示客户端请求的参数信息、包括GET或者POST请求的参数、Cookie参数。渗透人员可以通过修改这些请求参数来完成对服务器端的渗透测试。
headers 这个视图显示的信息和Raw的信息类似,只不过在这个视图中,展示得更直观、友好。
Hex 这个视图显示Raw的二进制内容,你可以通过hex编辑器对请求的内容进行修改。
默认情况下,Burp Proxy只拦截请求的消息,普通文件请求如css、js、图片是不会被拦截的,你可以修改默认的拦截选项来拦截这些静态文件,当然,你也可以通过修改拦截的作用域、参数或者服务器端返回的关键字来控制Burp Proxy的消息拦截,这些在后面的章节中我们会进一步的学习。 所有流经Burp Proxy的消息,都会在http history记录下来,我们可以通过历史选项卡,查看传输的数据内容,对交互的数据进行测试和验证。同时,对于拦截到的消息和历史消息,都可以通过右击弹出菜单,发送到Burp的其他组件,如Spider、Scanner、Repeater、Intruder、Sequencer、Decoder、Comparer、Extender,进行进一步的测试。如下图所示:
数据拦截与控制
Burp Proxy的拦截功能主要由Intercept选项卡中的Forward、Drop、Interception is on/off、Action、Comment 以及Highlight构成,它们的功能分别是: Forward的功能是当你查看过消息或者重新编辑过消息之后,点击此按钮,将发送消息至服务器端。 Drop的功能是你想丢失当前拦截的消息,不再forward到服务器端。Interception is on表示拦截功能打开,拦截所有通过Burp Proxy的请求数据;Interception is off表示拦截功能关闭,不再拦截通过Burp Proxy的所有请求数据。 Action的功能是除了将当前请求的消息传递到Spider、Scanner、Repeater、Intruder、Sequencer、Decoder、Comparer组件外,还可以做一些请求消息的修改,如改变GET或者POST请求方式、改变请求body的编码,同时也可以改变请求消息的拦截设置,如不再拦截此主机的消息、不再拦截此IP地址的消息、不再拦截此种文件类型的消息、不再拦截此目录的消息,也可以指定针对此消息拦截它的服务器端返回消息。
Comment的功能是指对拦截的消息添加备注,在一次渗透测试中,你通常会遇到一连串的请求消息,为了便于区分,在某个关键的请求消息上,你可以添加备注信息。
Highlight的功能与Comment功能有点类似,即对当前拦截的消息设置高亮,以便于其他的请求消息相区分。
除了Intercept中可以对通过Proxy的消息进行控制外,在可选项设置选项卡Options中也有很多的功能设置也可以对流经的消息进行控制和处理。
可选项配置Options
当我们打开可选项设置选项卡Options,从界面显示来看,主要包括以下几大板块(涉及https的功能不包含在本章内容里,后面会一章专门叙述):
客户端请求消息拦截
服务器端返回消息拦截
服务器返回消息修改
正则表达式配置
其他配置项
客户端请求消息拦截
客户端请求消息拦截是指拦截客户端发送到服务器端消息的相关配置选项,其界面如下:
主要包含拦截规则配置、错误消息自动修复、自动更新Content-Length消息头三个部分。
如果intercept request based on the follow rules的checkbox被选中,则拦截所有符合勾选按钮下方列表中的请求规则的消息都将被拦截,拦截时,对规则的过滤是自上而下进行的。当然,我们可以根据自己的需求,通过【Up】和【Down】按钮,调节规则所在位置和排序。同时,我们可以点击【Add】添加一条规则,也可以选中一条规则,通过点击【Edit】进行编辑、点击【Remove】进行删除。当我们点击【Add】按钮时,会弹出规则添加的输入对话框,如下图:
拦截规则添加时,共包含4个输入项。Boolean opertor表示当前的规则与其他规则是与的方式(And)还是或的方式(Or)共存;Match type表示匹配类型,此处匹配类型可以基于域名、IP地址、协议、请求方法、URL、文件类型、参数, cookies, 头部或者内容, 状态码, MIME类型, HTML页面的title等。Match relationship表示此条规则是匹配还是不匹配Match condition输入的关键字。当我们输入这些信息,点击【OK】按钮,则规则即被保存。
如果Automatically fix missing的checkbox被选中,则表示在一次消息传输中,Burp Suite会自动修复丢失或多余的新行。比如说,一条被修改过的请求消息,如果丢失了头部结束的空行,Burp Suite会自动添加上;如果一次请求的消息体中,URl编码参数中包含任何新的换行,Burp Suite将会移除。此项功能在手工修改请求消息时,为了防止错误,有很好的保护效果。
如果Automatically update Content-Length的checkbox被选中,则当请求的消息被修改后,Content-Length消息头部也会自动被修改,替换为与之相对应的值。
通常的黑客攻击包括预攻击、攻击和后攻击三个阶段;预攻击阶段主要指一些信息收集和漏洞扫描的过程;攻击过程主要是利用第一阶段发现的漏洞或弱口令等脆弱性进行入侵;后攻击是指在获得攻击目标的一定权限后,对权限的提升、后面安装和痕迹清除等后续工作。与黑客的攻击相比,渗透测试仅仅进行预攻击阶段的工作,并不对系统本身造成危害,即仅仅通过一些信息搜集手段来探查系统的弱口令、漏洞等脆弱性信息。为了进行渗透测试,通常需要一些专业工具进行信息收集。渗透测试工具种类繁多,涉及广泛,按照功能和攻击目标分为网络扫描工具、通用漏洞检测、应用漏洞检测三类。
已有1位网友发表了看法:
访客 评论于 2022-07-13 15:25:10 回复
字来控制Burp Proxy的消息拦截,这些在后面的章节中我们会进一步的学习。 所有流经Burp Proxy的消息,都会在http history记录下来,我们可以通过历史选项卡,查看传输的数据