[网络安全自学篇] 三.Burp Suite工具安装配置、Proxy基础用法及暴库示例

最近开始学习网络安全相关知识,接触了好多新术语,感受本身要学习的东西太多,真是学无止境,也发现了好几个默默无闻写着博客、作着开源的大神。接下来系统分享一些网络安全的自学笔记,但愿读者们喜欢。
上一篇文章分享了Chrome浏览器保留密码功能渗透解析及登陆加密入门笔记,结合实际例子一步步实现浏览器漏洞的挖掘。本篇文章着重讲解BurpSuite工具的安装配置、Proxy基础用法,并分享一个简单的暴库案例。很是基础的文章,但愿对入门的博友们有帮助,大神请飘过,谢谢各位看官!javascript

下载地址:https://github.com/eastmountyxz/NetworkSecuritySelf-study
百度网盘:https://pan.baidu.com/s/1dsunH8EmOB_tlHYXXguOeA 提取码:izebhtml

前文学习:
[网络安全自学篇] 一.入门笔记之看雪Web安全学习及异或解密示例
[网络安全自学篇] 二.Chrome浏览器保留密码功能渗透解析及登陆加密入门笔记java

前文欣赏:
[渗透&攻防] 一.从数据库原理学习网络攻防及防止SQL注入
[渗透&攻防] 二.SQL MAP工具从零解读数据库及基础用法
[渗透&攻防] 三.数据库之差别备份及Caidao利器
[渗透&攻防] 四.详解MySQL数据库攻防及Fiddler神器分析数据包git

补充学习资料:
TK13大神Windows PE专栏 https://blog.csdn.net/u013761036/article/category/6401236
TK13大神Windows对抗专栏 https://blog.csdn.net/u013761036/article/category/6365454
鬼手56大神六个专栏 https://blog.csdn.net/qq_38474570/article/details/87707942
whatiwhere大神逆向工程专栏 https://blog.csdn.net/whatiwhere/article/category/7586534github


一.Burp Suite工具安装及配置

1.Burp Suite

Burp Suite是用于Web应用安全测试、攻击Web应用程序的集成平台,它将各类安全工具无缝地融合在一块儿,以支持整个测试过程当中,从最初的映射和应用程序的攻击面分析,到发现和利用安全漏洞。web

Burp Suite为这些工具设计了许多接口,以加快攻击应用程序的过程。全部工具都共享一个请求,并能处理对应的HTTP 消息、持久性、认证、代理、日志、警报。Burp Suite结合先进的手工技术与先进的自动化,使你的工做更快,更有效,更有趣。算法

Burp Suite是Java编写的,因此在使用前须要安装JDK环境,这里不进行具体讲解如何安装JDK。做者从CSDN下载了一个版本,并能正常运行。数据库

官方下载地址:https://portswigger.net/burp
CSDN下载地址:浏览器

2.安装

安装过程很是简单,傻瓜式点击“下一步”安装。安全

安装成功以后运行以下所示,点击“Next” -> “Start Burp”显示主界面。

3.功能

Burp Suite的模块几乎包含整个安全测试过程,从最初对目标程序的信息采集,到漏洞扫描及其利用,多模块间高融合的配合,使得安全测试的过程更加高效。主要模块以下 :

  • Target(目标): 显示目标目录结构。
  • Proxy(代理): Burp Suite设置代理,抓取数据包。用于拦截HTTP/S的代理服务器,做为浏览器和目标应用程序之间的中间件,容许你拦截、查看、修改两个方向上的原始数据流。
  • Spider(蜘蛛): Burp Suite的蜘蛛功能是用来抓取Web应用程序的连接和内容等。
  • Scanner(扫描器): 高级工具,它能自动地发现Web应用程序的安全漏洞。主要用来扫描Web应用程序漏洞,发现常见的web安全漏洞,但会存在误报的可能。
  • Intruder(入侵): 一个定制的高度可配置工具,能够对Web应用程序进行自动化攻击和暴力猜解,如:枚举标识符,收集有用的数据,以及使用fuzzing技术探测常规漏洞。
  • Repeater(中继器): 对数据包进行重放(手动操做来触发单独的HTTP请求),分析服务器返回状况和响应,判断修改参数的影响。
  • Sequencer(会话): 用来检查Web应用程序提供的会话令牌的随机性,分析那些不可预知的应用程序会话令牌和重要数据项的随机性,并执行各类测试。
  • Decoder(解码器): 对数据进行加解密操做,包含url、html、base64等等。
  • Comparer(对比): 用来执行任意两个请求、响应或任何其它形式的数据之间的比较,一般是经过一些相关的请求和响应获得两项数据的一个可视化的“差别”。
  • Extender(扩展): 加载Burp Suite的扩展,使用你本身的或第三方代码来扩展Burp Suite的功能。
  • Options(设置): 对Burp Suite的一些设置,如burp、字体、编码等。
  • Alerts(警告): 用来存放报错信息的,用来解决错误。

4.配置代理

(1)添加foxyproxy附件功能。

在“设置”->“添加附件”中搜索“foxyproxy”。

添加安装该附件,以下图所示。

点击添加安装。

添加成功以后,能够选择打开FoxyProxy功能或关闭,以下图所示。

(2)设置火狐浏览器Firefox本地代理。在“网络”中设置HTTP代理为127.0.0.1,端口号为9090。

(3)接着设置Burp Suite代理,添加127.0.0.1且端口号为9090的代理,并使用它。

(4)用火狐浏览器打开网站则可获取网页相关信息。


二.Burp Suite工具Tareget

该功能主要用于查看网站的目录及元素,这里以某学校的管理系统为例,该网站的目录显示以下。

获取内容包括Host、提交方法、URL、参数、状态码、标题、Comment、Time等,而且可以设置对应网址的注释Comment,如做者添加了“登陆页面”注释。

右下部分能显示Request请求和Response响应信息,包括Raw、Headers、Hex、HTML等,以下图所示。

点击Site map左脚上部分,可以选择要显示的信息,包括显示HTML、CSS、Images等,显示状态码2xx、3xx、4xx、5xx等,显示和隐藏设置等。该功能能够按照请求类型、请求的状态、mime类型、搜索关键字、文件后缀、监听的端口等等,按我的需求去缩小须要的范围。

好比做者设置只显示2xx状态码页面,则显示以下图所示。

同时,能够为不一样的条目自定义设置背景颜色,表明不一样的功能或类型。若是认为某个数据包比较重要,可将当前数据包设置某个醒目的颜色以提示其重要性。

选中连接右键能实现更多功能,好比Spider、Scope等。

Scope主要是配合Site map作一些过滤的功能,如图所示。


三.Burp Suite工具Proxy

Proxy主要包括Intercept、HTTP histroy 、Websockets history、Options四个标签。

参考下列文章:
BurpSuite基础教程第八发:其余操做(HTTPS流量抓取&过滤器的使用)
BurpSuite基础教程第二发:Proxy模块(代理模块)
Web安全 — BurpSuite实战(上)
博客园Burp Suite使用介绍
《Web攻防之业务安全实战指南》做者:陈晓光等大神

1.Intercept模块

该模块主要是控制抓取到的数据包,用于显示修改HTTP请求及响应内容,并能够将拦截的HTTP请求快速发送至其余模块处理。

好比当“Intercept is on”开启时,火狐浏览器输入用户名和密码点击登陆,则能够看到Burp Suite拦截的用户名和密码。

  • Raw:以纯文本形式显示数据包
  • Params:包含参数URL 查询字符串、cookies请求,并可双击该请求进行修改。
  • Headers:以名称、值的形式显示获取的数据包。
  • Hex:可编辑数据包的二进制数据,在进行00截断时很是好用。

拦截信息以下所示,其中密码为MD5加密。

POST /cas/login HTTP/1.1
Host: xxxxx.edu.cn
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Referer: http://xxxxx.edu.cn/cas/login
Cookie: key_dcp_cas=nyfjdGZGmmYYdbN1fv2G349LydwzRhnrbGLqj4LMpRGd1YL3Qstl!-94055740
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 221

service=http%3A%2F%2Fi.xxxx.edu.cn%2Fdcp%2Findex.jsp&serviceName=null&loginErrCnt=0&
username=20190804&password=e10adc3949ba59abbe56e057f20f883e&replace-pwd=...

在线解密,能够看到密码为“123456”,固然,这是错误的用户名和密码。
username=20190804
password=e10adc3949ba59abbe56e057f20f883e

2.HTTP histroy模块

该模块将记录通过代理服务器访问的全部请求,即便当Intercept is off时也会记录。包括Host(主机)、Method(请求方式)、URL(请求地址)、Params(参数)、Edited(编辑)、Status(状态)、Length(响应字节长度)、MIME type(响应的MLME类型)、Extension(地址文件扩展名)、Title(页面标题)、Comment(注释)、SSL、IP(目标IP地址)、Cookies、Time(发出请求时间)、Listener port(监听端口)。

当咱们选中某个请求时,能够看他的请求包信息,一样也可查看他的响应包信息。

双击某个数据包便可打开详情,经过Previous/next功能切换到其余数据包,同时,也可将该数据包发送到其余功能模块当中。

3.Websockets history模块

该模块用于记录WebSockets的数据包,是HTML5中最强大的通讯功能,定义了一个全双工的通讯信道,只需Web上的一个 Socket便可进行通讯,能减小没必要要的网络流量并下降网络延迟。

4.Options模块

该模块主要用于设置代理监听、请求和响应、拦截反应、匹配和替换、ssl等。

(1)设置代理
侦遵从您的浏览器传入的链接本地HTTP代理服务器。它容许您监视和拦截全部的请求和响应,而且位于BurpProxy的工做流的心脏。默认状况下,Burp默认监听12.0.0.1地址,端口8080。

(2)配置拦截规则
置拦截的匹配规则,当Intercept request based on the following rules为选中状态时,burpsuite会配置列表中的规则进行拦截或转发。注意:若是该复选框未选中,那么即便Intercept is on也没法截取数据包。

以下图所示,建立一个规则:只拦截请求头中匹配DVWA的数据包。在实际使用过中咱们可能须要建立更多更复杂的规则,来找到想要的数据包。

(3)配置拦截规则 Intercept Server Responses
拦截response并修改response中的返回值。

(4)Response Modification
用于执行响应的自动修改,可使用这些选项来自动修改HTML应用程序响应中匹配的内容。好比,设置高亮隐藏部分,勾选unhide hidden form fields(显示隐藏的表单,在html中type为hidden的表单)和prominently highlight unhidden fields(高亮隐藏部分)。

示例以下:

remove javascipt form validation
删除javascript表单验证。某些站点经过JavaScript过滤表单的内容,如字符串长度、文件后缀、字符串格式等,开启后删除验证javascript。

更详细的知识推荐读者阅读博客:https://www.jianshu.com/p/73e1b0a974cc


四.Burp Suite工具暴库示例

下面以某网址为例,进行简单的暴库测试。注意,它是HTTP的登陆请求。

第一步,用Burp Suite进行拦截请求,找到请求参数进行篡改。
TextBoxUserName=15200000000
TextBoxPwd=111111

第二步,在界面中鼠标右键,在弹出菜单中选择“Send to Intruder”(Ctrl+I),此时会将请求数据分发给Intruder模块,而且Intruder变红。

第三步,使用Burp Suite工具中的Intruder模块进行破解参数配置,运行破解任务并成功破解用户名和密码。

(1)在Intruder模块中选择Positions选项,单击“Clear”按钮清楚相关默认参数先后的特殊符号“§”。

(2)鼠标选中请求数据页面中的Password参数值(须要进行暴力破解的密码值),单击“Add§”按钮进行位置标记。
TextBoxPwd=§111111§

(3)选择Payloads选项,单击“Load items form file”,在弹出的对话框中选择暴力破解密码文件并单击“打开”按钮,将破解密码列表导入。

(4)单击“Start attack”按钮开始破解测试。

(5)在弹出的窗口“Intruder attack”中能够根据返回长度Length的不一样判断破解是否成功,这里隐藏的密码是“013579”,它的长度最大而且为最终密码。注意,Length越大那么密码吻合就越大。

也能够经过查看Response返回信息或Status返回状态的不一样信息判断是否成功。

错误的密码返回信息:

正确的密码返回信息:

(6)经过破解的密码尝试登录。

(7)若是密码是通过MD5加密的,如上面第三部分测试的网站,则须要进行以下设置。在“Payload Processing”中点击“Add”添加哈希MD5加密。

此时点击攻击以下图所示,是通过加密的匹配。

我的建议,参考陈晓光大神的Web攻防书籍,也推荐你们阅读。

  • 增长验证码,登陆失败一次,验证码更换一次。
  • 配置登陆 失败次数限制策略,如同一用户尝试登陆的状况下,5分钟内登陆失败超过4次,则禁止用此用户在2小时内登陆系统。
  • 在条件容许状况下,增长手机接收短信验证码或邮箱接收邮件验证码,实现双因素认证的防暴力破解机制。

补充知识:
在系统登陆时密码加密流程通常是先将用户名和密码发送到服务器,服务器会把用户提交的密码通过Hash算法加密后和数据库中存储的加密值比对,若是加密值相同,则断定用户提交密码正确。

但有些网站系统的流程是在前台浏览器客户端对密码进行Hash加密后传输给服务器并与数据库加密值进行对比,若是加密至相同,则断定用户提交密码正确。此种流程不是很好,它会泄露密码加密方式,致使安全隐患。


五.火狐浏览器HTTPS访问之安全证书安装

当咱们想访问HTTPS网站时,须要导入Burp Suite安装证书并安装,基本流程以下:

第一步,配置好浏览器代理。
第二步,在地址栏输入http://burp,回车下载证书。注意这里的证书不能是零字节,否则去找破解版。

第三步,向浏览器中导入证书,在firefox中,选项-> 高级->证书->查看证书->证书机构。

第四步,导入证书,信任证书。

以下图所示:

第五步,找个HTTPS网站测试便可。但做者测试百度始终没有成果,拦截的网站也不对,无语~

参考:https://blog.csdn.net/zyw_anquan/article/details/47904495


六.总结

写到这里,整篇文章结束了,其实网络安全仍是挺有意思的,尤为是最后解决了一个问题以后。每一篇文章都是站在无数大神和大佬的肩膀之上,做为一个网络安全的初学者,深深地感觉到本身有太多的东西须要学习,还好态度比较端正,天天都在一步一个脚印前行。

但愿这篇基础性文章对你有所帮助,若是有错误或不足之处,还请海涵。后续将分享更多网络安全方面的文章了,从零开始很难,但秀璋会一路走下去的,加油。

(By:杨秀璋 2019-08-05 周天凌晨1点写于武汉 https://blog.csdn.net/Eastmount )