什么是ZAP?
ZAP则是OWASP里的工具类项目,也是旗舰项目,全称是OWASP Zed attack proxy,是一款web application 集成渗透测试和漏洞工具,同样是免费开源跨平台的。
ZAP主要覆盖了安全性测试里渗透测试即对系统进行模拟攻击和分析来确定其安全性漏洞。ZAP能够以代理的形式来实现渗透性测试,它将自己和浏览器之间设置一个中间人的角色,浏览器与服务器的任何交互都将经过ZAP,ZAP则可以通过对其抓包进行分析、扫描。
同时,ZAP适用于所有的操作系统和Docker的版本,而且简单易用,还拥有强大的社区,能够在互联网上找到多种额外的功能插件。
zap的优点
可以快速自动化地发现 web 应用程序中的漏洞和安全问题,如 XSS(跨站脚本攻击)2、CSRF(跨站请求伪造)3等。同时,ZAP 的爬虫还支持多线程扫描,可以大大提高扫描速度和效率。
ZAP爬虫功能的优点如下:
自动化:ZAP爬虫可以自动化地发现网站的信息和漏洞等问题,大大提高了工作效率。
全面性:ZAP爬虫能够全面地扫描网站,包括网站中的页面、链接和参数等,确保不漏掉任何一个细节。
可定制性:ZAP爬虫提供了灵活的定制功能,用户可以为其增添自定义规则,以满足特定需求。
安全性:ZAP爬虫可以帮助用户发现网站的漏洞和安全问题,通过修复这些问题,用户可以提高网站的安全性。
易扩展性:ZAP是一款开源的工具,用户可以通过自己编写插件扩展其功能,满足自己的特定需求。
ZAP的功能
1.代理服务器:
ZAP通过代理服务器拦截Web应用程序与浏览器之间的通信,并记录HTTP和HTTPS请求和响应。
代理服务器是一种位于客户端和目标服务器之间的中间服务器,用于中转和过滤网络流量。在ZAP中,代理服务器用于拦截Web应用程序与浏览器之间的通信,并记录HTTP和HTTPS请求和响应。通过代理服务器,ZAP可以监控和检测Web应用程序的漏洞和安全问题,并提供相应的修复建议。同时,代理服务器还可以用于修改和重放请求,以便测试和演示攻击。
2.漏洞扫描器:
ZAP具有强大的漏洞扫描能力,能够检测Web应用程序中的常见漏洞,如XSS、SQL注入、CSRF、命令注入等。
漏洞扫描器是指用于自动化测试和检测Web应用程序中的漏洞的工具。ZAP具有强大的漏洞扫描能力,能够检测Web应用程序中的常见漏洞,如XSS、SQL注入、CSRF、命令注入等。ZAP可以通过被动扫描或主动扫描两种方式进行漏洞扫描。 被动扫描是在Web应用程序与浏览器之间的通信中拦截和检测漏洞,而主动扫描是通过模拟攻击向Web应用程序发送请求以检测漏洞。ZAP还提供了自定义扫描策略和报告生成功能,以便用户可以根据自己的需求对漏洞进行详细分析和报告。
3.攻击脚本:
ZAP支持通过编写攻击脚本对Web应用程序进行自动化攻击,这些脚本可以模拟各种攻击场景,如SQL注入、XSS等。
攻击脚本是在ZAP中用于自动执行攻击的脚本。ZAP支持通过编写攻击脚本对Web应用程序进行自动化攻击,这些脚本可以模拟各种攻击场景,如SQL注入、XSS等。ZAP提供了多种攻击脚本语言,如Zest脚本、JavaScript等。攻击脚本可以通过ZAP的脚本编辑器进行编写和编辑,并可以与ZAP的其他功能(如代理服务器、漏洞扫描器等)进行集成和使用。用户可以编写自己的攻击脚本或下载其他用户编写的攻击脚本来对Web应用程序进行测试、评估和验证。
4.报告生成:
ZAP能够生成详细的漏洞报告,包括漏洞的描述、影响、解决方案等,帮助安全专业人员对漏洞进行准确分类和评估。
ZAP能够生成详细的漏洞报告,帮助安全专业人员对漏洞进行准确分类和评估。ZAP可以生成各种类型的报告,包括HTML、XML、CSV等格式。在报告中,ZAP提供了丰富的漏洞信息,如漏洞触发点、漏洞类型、危害程度、漏洞描述、修复建议等,同时还提供了漏洞的截图、HTTP请求和响应等详细信息。ZAP还提供了漏洞的历史信息,可以追踪漏洞的演化过程,帮助用户了解漏洞的发展趋势,从而更好地制定漏洞修复计划。
准备
为了使这个程序工作,我们需要使用ZAP作为我们的Web浏览器的代理:
1. 从Kali Linux菜单启动OWASP ZAP,然后从Applications | 03 - Web Application Analysis | owasp-zap
apt install zaproxy
2. 接下来,我们将更改ZAP的代理设置。 默认情况下,它使用端口8080, 这是可以的,但是如果我们让ZAP和Burp Suite同时运行,则会干扰Burp Suite等其他代理。在ZAP中,转到Tools | Options | Local Proxies并将端口更改为8088
3. 现在,在Firefox中,转到主菜单并导航到Preferences | Advanced | Network; 在Connection中,单击Settings。
4. 选择手动代理配置,并将HTTP代理设置为127.0.0.1,将端口设置为8088。 选中该选项以对所有协议使用相同的代理,然后单击OK:
5. 我们还可以使用FoxyProxy插件设置多个代理设置,切换他们只需点击一下:
实战
现在我们已经配置了浏览器和代理,我们准备扫描服务器的存在的文件夹,使用以下步骤:
1. 正确配置代理后,浏览到 http://192.168.110.129(以自己的靶机为准)
2. 我们将看到ZAP通过显示我们刚访问过的主机的树结构来对此操作做出反应
3. 现在,在ZAP的左上角面板(“站点”选项卡)中,右键单击WackoPicko文件夹在http://192.168.56.11网站内。 然后,在上下文菜单中,导航到Attack |强制浏览目录(和子目录); 这将进行递归扫描:
4. 在底部面板中,我们将看到ForcedBrowse选项卡。 我们可以查看扫描进度及其结果:
总结
代理是一个应用程序,充当客户端和服务器之间的中介,或者为一个服务器组提供不同的服务。客户端从代理请求服务,代理能够将请求转发到适当的服务器并获取来自客户端的回复。
当我们将浏览器使用ZAP作为代理时,并且ZAP正在监听时,它不会直接发送请求到我们想要浏览网页的服务器,而是发送到我们定义的地址。然后ZAP将请求转发给服务器,但我们发送的是没有注册和分析过的信息。
ZAP的强制浏览与DirBuster的工作方式相同; 我们需要配置相应的字典,并向服务器发送请求,就像它试图浏览列表中的文件一样。如果文件存在,服务器将相应地做出响应; 如果它们不存在或者当前用户无法访问,则服务器将返回错误。
注意事项
只可以在当你有权使用主动攻击的方式测试某一应用时才可以使用ZAP。
因为ZAP的运作方式会让应用如同遭受真实攻击,应用的功能和数据都有可能因此受损。
如果你担心使用ZAP会给被测应用带来风险,你可以切换到安全模式(ZAP的可用功能会大大减少)。
要切换成安全模式,点击主菜单栏的“模式”下拉菜单选择安全模式。