(1)浏览器设置代理的配置:
(2)Burp Suite的配置:Proxy——>Options——>Proxy Listeners加入127.0.0.1:8081
的监听。
(3)截取数据包
情景:一个用必应去搜索李连杰的请求,我要从中截断,不让搜索继续。
浏览器访问:http://cn.bing.com/
Burp Suite设置:Proxy——>Intercept——>Intercept is on
浏览器在必应搜索框输入:李连杰,然后点击搜索按钮:
这时Burp Suite在任务栏的图标已经亮了,这是截取到了这个请求的提醒,而必应搜索页,卡住了!!!
一直点击Drop,就可以把这些数据包都砍掉,至此截包成功。
(4)改包
情景:一个用必应去搜索wujiechao的请求,我要从中截包修改,改成搜索波多结衣的请求。
首先浏览器访问:http://cn.bing.com/ ,然后Burp Suite设置:Proxy——>Intercept——>Intercept is on
,接着浏览器在必应搜索框输入:wujiechao。
在Burp Suite,留意Params,先Forward一些包,直到看到URL参数出现了wujiechao:
然后将其修改成boduoyejieyi(中文乱码暂没找解决方法)。
好,这时将不再截取数据包,将Intercept改成off,回到浏览器看看波姐吧……
至此,截取数据包并修改包的操作已完成。
http和https是分开的,对http使用了代理并不代表对https也使用了代理,要配置浏览器让其对https也使用同样的代理。
当然有些浏览器提供“为所有协议使用相同代理”的选项(比如这里的Firefox),那直接钩选这个选项也可以。
配置完成后访问http的网站可以发现成功访问,但访问https的网站一般不可访问,报错如下
那么如何让BurpSuite能拦截到Https协议的请求包呢?
(1)确认已将浏览器配置成burpsuite代理模式,然后访问 http://burp/ 界面如下:
(2)点击下载证书CA Certificate
(3)将下载的证书导入浏览器“证书机构”项
(4)重启浏览器,打开burpsuite代理,打开burpsuite进行数据包捕获:
1.保持抓包功能一直开启
这里应该不用赘述了,只要听说过burpsuite的少年肯定知道如何开启监听功能。
2.单击数据包区域,右键,选择“Do an active scan(激活主动扫描)”
点击按钮之后,burpsuite会提示是否激活扫描,选择“是”
这时“Scanner(扫描)”按钮会亮起,开始进行扫描。
3.扫描功能介绍
Scanner标签下有五个功能,下面分别进行介绍:
(1)Issue activity问题清单
这里记录了问题发生的顺序,时间,问题类型,url地址等。从截图中我们能够看到burpsuite提供的扫描功能能够扫出以下几个问题:
反射型XSS
Flash跨域策略
SQL注入
未加密通信
跨域引用漏洞
公开电子邮件地址
扫描队列记录了扫描主机、扫描状态、问题数量、请求的次数的等扫描信息。
3)Living scanning在线扫描
通过“Living scanning”页签可以设置扫描策略,即是否在监听时发现站点就进行扫描,这里默认的开关是关。
4)问题列表
这里列出了burpsuite可以测试的的漏洞类型,包括注入、xss、命令执行等各类常见的web漏洞,看起来还是很全的
5)options 设置
Burp Suite确确实实是一个渗透测试居家旅行必备的神器,但是在测试过程中也发现了有很多问题:
(1)同一站点,同一测试方法,不同次数的扫描的内容竟然不一样。这个真是一个要命的问题,连进行个扫描还要看人品?
(2)要把监听一直开着
这个倒不算什么要紧的问题,只是在测试的过程中一定要小心别把监听和代理关掉
(3)照比成熟的商业化扫描器差距太大
鉴于Burp Suite的定位,并不能指望能和AWVS、AppScan等成熟的商业化扫描器平分天下,但是Burp Suite的扫描结果并不能与前面两位大侠同日而语。但是如果出门手头没有扫描器,或者是需要轻载扫描的时候,一个Burp Suite就够了。
此处讲的是如何使用Burp Suite模糊测试SQL注入、XSS、命令执行漏洞,今天我将使用打包的套件攻击工具对bwapp应用程序进行模糊测试,手动执行此测试是一个耗时的时间,可能对任何一个渗透性测试的安全人员来说都是无聊的过程。
模糊测试在软件测试中起着至关重要的作用,它是一种工具,用于通过将一组称为模糊的部分地址输入注入到要测试的应用程序的程序中来查找错误,错误,故障。 漏洞检查工具采用文件格式的结构输入来区分有效和无效的输入。漏洞检查工具最适合识别sql注入,缓冲区溢出,xss注入和OS命令注入等漏洞。
模糊测试XSS
开始利用Burp Suite,以拦截请求,然后将拦截的数据发送到攻击工具的服务器。
可以通过在请求参数中提交各种测试字符串,并分析应用程序对错误消息和其他异常的响应来检测许多基于输入的漏洞,如SQL注入,跨站点脚本和文件路径遍历。测试的关键点是找到有效载荷将被插入的位置,并确定分配给有效载荷位置的方式。有效位置是测试时输入的用户名,攻击类型是利用一个有效载荷。
要确定在攻击期间有效载荷能被放到它自己的位置,就要使用配置预定义的有效载荷清单(config predefined payload lists)来进行选择,该清单里包含了常见的模糊字符串来配置有效载荷列表。
Burp suite攻击工具包含用于测试xss注入的模糊字符串,因此选择fuzzing -xss,然后单击ADD选项卡将此字符串加载到简单列表中,如下图所示,最后点击开始攻击。
它将通过发送包含随机字符串的请求来开始攻击,以测试目标应用程序中的xss漏洞。现在从给定的应用字符串列表中选择具有最高长度的有效载荷作为给定图像所示的输出,我选择了长度等于13926的请求1。
将所选的有效内容插入截取的请求中,然后转发此请求。
这样模糊测试就完成并发现应用程序有可能导致xss漏洞的错误。从下图你可以看到它显示一个xss警报提示。
模糊测试命令执行漏洞
Burp suite攻击工具包含测试命令注入的模糊字符串,因此选择fuzzing full,并单击ADD选项卡将该字符串加载到简单列表中,如下图所示,最后点击开始。
它将通过发送包含任意字符串的请求来开始攻击,以测试目标应用程序中的操作系统命令注入漏洞。现在从给定的应用字符列表中选择具有最高长度的有效载荷作为给定图像所示的输出,我选择了长度等于13343的选择请求34。将所选的有效内容插入截取的请求中,然后转发此请求。
这时,模糊测试就完成了,就可以发现应用程序出现导致操作系统命令漏洞的错误。从下图中,你可以看到应用程序根据所选有效载荷的请求显示ID。
模糊测试SQL注入
Burp suite攻击工具包含将测试SQL注入的模糊字符串,因此选择fuzzing -SQL注入用于第一个有效载荷位置,然后单击ADD选项卡将该字符串加载到简单列表中,如下图所示,最后点击开始。
它将通过发送包含任意字符串的请求来开始攻击,以测试目标应用程序中的SQL注入漏洞。现在从给定的字符串列表中选择具有最高长度作为输出的有效载荷,如下图像所示,我选择了长度等于13648的选择请求168。
将所选的有效内容插入截取的请求中,然后转发此请求。
这样模糊测试就完成了,也发现应用程序有错误导致SQL注入漏洞。 从下图可以看出,我登录到Neo的帐户没有有效的输入,这只是根据所选择的有效载荷的请求发生的。
在做测试的时候总是遇到response中文乱码的问题。Google很多解决方案都是仅仅只修改burp字体。可是有些时候单纯修改字体问题依然会存在。后来发现还需要设置burp编码,目前问题暂时得到解决,以下记录问题过程及解决详情,供有需之人。
burpsuite response返回中文乱码,像下面这样:
【解决方法】
设置User options——Display——HTTP Message Display的Font为中文字体,比如宋体、微软雅黑等。然后设置Character Sets为Use a specific character set:UTF-8(这里吐槽下,windows默认选择的是Recognize automatically based on message headers,Mac则默认就是UTF-8,当时没发现这点,一直以为是字体原因 =.=!),具体可见下图:
解决后的效果:
Happy,burpsuite中文乱码问题解决。
Acunetix一款商业的Web漏洞扫描程序,它可以检查Web应用程序中的漏洞,如SQL注入、跨站脚本攻击、身份验证页上的弱口令长度等。它拥有一个操作方便的图形用户界面,并且能够创建专业级的Web站点安全审核报告。新版本集成了漏洞管理功能来扩展企业全面管理、优先级和控制漏洞威胁的能力。Acunetix 11重新设计的基于Web的用户界面,让用户使用和管理更加容易。此外,Acunetix 11也可以被多个用户使用。
“Acunetix以其尖端的漏洞扫描技术在过去12年来一直处在Web应用程序安全的尖端, 新版本11,我们将针对Web应用程序漏洞的主动扫描与缓解活动的优先级组合在一起。 这种集成可帮助安全团队获得所需的智能,从而更高效地工作并降低成本。”
(1) 内置漏洞管理
最新的集成漏洞管理功能可以对所有目标中的聚合漏洞数据进行审查,优先考虑安全风险,从而让用户对业务安全状态的了若指掌,同时也增强了遵从性。
新的内置漏洞管理功能包括:
• 所有目标(要扫描的Web应用程序)现在以其各自的设置存储在Acunetix中,并且可以轻松地重新扫描。
• 目标显示在一个界面中,并按业务的重要程度进行分类,使您可以轻松地关注最重要的资产。
• 漏洞也可根据目标公司业务的重要性进行优先选择。
• 合并报表存储在中央界面中。
• 用户可以在“目标报表”,“扫描报表”和“所有漏洞”报表之间进行选择。
(2)基于网络的用户界面
Acunetix 11的用户界面从头开始重新设计,提高了软件的可用性和可管理性。极简主义的设计注重最广泛使用的功能和重要的功能,消除了多余的杂乱屏幕。由于界面现在基于Web,因此用户不需考虑所使用的操作系统使用,而且允许多个用户从浏览器访问。
(3)基于角色的多用户系统
Acunetix 11允许创建多个用户帐户,可以分配一个特定的目标组。根据分配给用户的权限,用户可以创建,扫描和报告分配给他的目标。这对于需要多个用户帮助保护其资产的大型企业尤其重要。
注意:不要在没有获取到恰当的认证之前扫描一个网站!
web服务器会显示你发起扫描的IP和所有由Acunetix制造的攻击。如果你不是这个站点或者是某个网络应用的唯一管理员,请确保在发起一个扫描前通知其他管理员知道你将要扫描此网站。有些类型的扫描会导致网站崩溃,如果有需要请尝试重启你的网站。
当你配置好你需要扫描的目标之后,你需要准备好发起一个扫描来辨识你的网站应用存在的任何潜在的安全漏洞。这里有如下许多方法来开始一个扫描:
1.从Target清单中选择一个Target来扫描,点击扫描按钮:
这里的截屏出自于选择一个Target并且开始扫描。
2.在配置Target设置中,点击现在开始扫描
这里的截图来自于选择一个Target并且开始扫描
3.从扫描的页面中,点击新建一个扫描。根据网页的提示你需要选择一个Target来作为扫描对象。
当你选择了多个Target来扫描的时候,需要配置扫描选项来用于扫描。
截图来自于选择扫描选项。
1、scan type:
在Full Scan和scanning profile中选择一个扫描类型。不同的扫描类型对于漏洞的扫描侧重点是不一样的(例如选择Cross-Site Scripting,SQL Injection)。下面简略的介绍了有关Acunetix中所包含的扫描类型。
(1)Full Scan– 使用Full Scan来发起一个扫描的话,Acunetix会检查所有可能得安全漏洞。
(2)High Rish Vulnerabilities–这个扫描选项将仅仅只会检查那些对web站点影响最大的缺陷漏洞。
(3)Cross-Site Scripting(XSS)–XXS漏洞扫描只会检测跨站脚本攻击漏洞缺陷。
(4)SQL Injection–SQL Injection扫面只会检查有关SQL注入的漏洞攻击。
(5)Weak Passwords–弱密码漏洞扫描将只会扫描那些接受用户名和密码的表单,并尝试对这些表单进行攻击。
(6)Crawl Only–爬虫扫描仅仅对网站进行爬虫并建立该网站的整体结构,并不会做任何漏洞扫描检查。
2、连续扫描
在你运行完了第一次初始化扫描之后,确认并且修复了已经检测到的漏洞缺陷,并且确认你的目标网站没有包含漏洞和安全问题之后,你需要连续扫描来确保你的目标站点处于安全状态。对目标url进行连续扫描,并且给予每天的的日常扫描报告是否检测到了新的安全漏洞。新的漏洞可以引入到web开发人员对网站的更新中修复,或者反馈到web服务器的管理员,通过对web服务器的配置修改来规避这些安全漏洞。
建议在进行连续扫描的时候每周执行一次全量扫描。全量扫描是在每天快速扫描的基础上增加的,快速扫描只注重严重级别的安全漏洞扫描。连续扫描target的web站点之后会将新扫描出来的安全漏洞追加到安全漏洞报告中,用户可以去报告中查看有关该安全漏洞的详细信息。当一个新的漏洞被扫描出来之后,你将会被邮件通知并且在消息提示栏中显示最新被识别的漏洞。
对一个综合性的大型网站来说,可能存在成千上万的页面。以登录界面为例,至少要输入用户名和密码,即该页面存在两个字段,当提交了用户名和密码等登录信息,网站需要检查是否正确,这就可能存在一个新的检查页面。这里的每个页面的每个参数都可能存在安全漏洞,可能成为被攻击对象。AppScan正是通过按照设定策略和规则,对Web应用进行安全攻击,以此来检查网站是否存在安全漏洞。
在使用AppScan的时候,通过配置网站的URL网址,AppScan会利用“探索”技术去发现这个网站存在多少个目录,多少个页面,页面中有哪些参数等,即探索出网站的整体结构。通过“探索”可确定测试的目标和范围,然后利用AppScan的扫描规则库,针对发现的每个页面的每个参数,进行安全检查。
简言之,APPScan的工作原理如下:
1)通过“探索”功能,利用HTTP Request和Response的内容,爬行出指定网站的整个Web应用结构;
2)AppScan本身有一个内置的漏洞扫描的规则库,可随版本进行更新。从探索出的url中,修改参数or目录名等方式,构造不同的url对照组向服务器发送请求or攻击;
3)根据HTTP Response返回的内容,和正常请求所返回的响应作对比,是否产生差异性,而这种差异性又是否符合扫描规则库的设定规则,以此来判断是否存在不同类型的安全漏洞;
4)若APPScan可判断存在安全漏洞,则对这些漏洞的威胁风险给出说明,进行严重程度提示,并给出修复的建议和方法,以及漏洞发现的位置提示。
1.启动软件进入主界面—>选择创建新的扫描:
2.在弹出的新建扫描对话框中选择常规扫描
3.在弹出的扫描配置向导对话框中选择AppScan(自动或手动),点击下一步
4.在此页面中填写需要扫描系统的网址,点击下一步
5.选择登陆方式为记录,点击下一步
1)若登录方法选择“记录”,则可通过界面右侧的“记录(R)”按钮打开APPScan内置浏览器并输入登录信息,关闭内置浏览器后,AppScan即可记录该用户名和密码,扫描的时候相当于是已登录此账户的状态进行扫描;
2)若选择“提示”,则根据网站扫描探索过程中需要登录会提示输入登录信息,人工输入正确的账号信息之后继续扫描;
3)若选择“无”,则不需输入登录账户。
6.选择一种测试策略(本例以完成为例):
测试策略说明:
①缺省值:包含多有测试,但不包含侵入式和端口侦听器
②仅应用程序:包含所有应用程序级别的测试,但不包含侵入式和端口侦听器
③仅基础结构:包含所有基础结构级别的测试,但不包含侵入式和端口侦听器
④侵入式:包含所有侵入式测试(可能影响服务器稳定性的测试)
⑤完成:包含所有的AppScan测试
⑥关键的少数:包含一些成功可能性较高的测试精选,在时间有限时对站点评估可能有用
⑦开发者精要:包含一些成功可能性极高的应用程序测试的精选,在时间有限时对站点评估可能有用
7.启动全面自动扫描
1)全面自动扫描:探索的同时,也进行攻击测试;
2)仅自动“探索”:自动探索网站的目录结构,可被测的链接范围及数目,不作实际攻击测试;
3)手动探索:先通过AppScan内置浏览器打开被测网站,手动点击不同的目录页面,然后AppScan记录之;
4)稍后启动扫描:先把此次网站的扫描配置进行保存,后续若想扫描的时候再继续操作。
8.在自动保存对话框中选择是
9.将扫描文件保存在本机目录下
10.进行第一遍的探索
11.探索完成获得探索到的结果
12.在扫描菜单栏中选择扫描配置,弹出扫描配置对话框,在环境定义中选择测试系统需要的配置,点击应用
13.进行继续完全扫描(开始启动对此次探索结果的攻击测试)
14.等待扫描完成
15.测试完成之后,保存本次AppScan扫描测试的结果;从统计出的安全性问题,可以查看对应的漏洞链接、请求和响应、修复建议。
16.点击“报告”,创建不同要求的安全报告
【1】AppScan扫描过程中,会向服务器发送较多请求,会占用一定的正常请求访问的资源,可能导致一些垃圾数据,建议只在本地测试环境执行;
【2】使用AppScan之前,请提前备份好数据库的数据,假若扫描致使服务器异常关闭,则需重启服务;若扫描产生的请求数据过多,或Web程序出现异常,可能需要从备份数据恢复还原。一般情况下,正常扫描Web程序很少可能出现Web服务异常的情形;
【3】AppScan扫描配置时,有区分为Web Application(Web应用程序)和Web Service(Web服务)的扫描方向。若只对Web程序本身的漏洞检测,就选Web Application扫描即可;若选择Web Service扫描,则需提前告知服务器维护的负责人,建立异常情况发生的处理机制,最好避开访问请求的高峰or办公人员集中使用的时间,比如下班后自动扫描;
【4】AppScan扫描的结果并不代表完全真实的情况,受限于所用扫描器版本的漏洞规则库的规则,以及操作者的配置策略,扫描过程中有可能会使得扫描器出现误判or漏测。如有必要,还需对扫描的结果进行人工校验,可对同一Web应用分次进行扫描对比差异性;
【5】扫描配置时,一般按照默认的测试策略-WASC威胁分类即可;若服务器本身所能承受的性能压力不强,or存在较多漏洞的时候,不宜选择“侵入式”策略,该策略存在着可能会入侵服务器、关闭服务、破坏数据库等风险;
【6】使用破解版的AppScan扫描Web应用时,若Web网站本身结构比较复杂、模块众多、涉及的url数目巨大(几万-十多万),则不宜一次性全站扫描,有可能连续扫描几个小时都不能探索完网站的所有结构。持续时间过长还可能造成AppScan出现卡顿,显示“正在扫描中”,但实际上已经没有继续再扫描。因此,当第一次探索了大概的网站结构和容量之后,若容量巨大,最好分而治之,按模块结构分次进行扫描测试;
【7】结果分析(Analysis)在APPScan扫描结果基础上,根据不同的严重级别进行排序、手工+工具验证的方式对漏洞验证可靠性,排除误报的情况,并尽可能找出漏报的情况,把本次扫描结果汇总,对以上已验证存在的安全漏洞排列优先级、漏洞威胁程度,并提出每个漏洞的修复建议然后,再把此次安全漏洞整理的报告提交给项目负责人,由负责人决定哪些漏洞转给开发工程师修复,而后再由安全测试工程师进行回归验证修复的状况。