黑客笔记40:Web 漏洞挖掘实战专栏学习记录Ⅰ

294 阅读18分钟

PortSwigger

PortSwigger Web Security Academy是一个专注于Web应用安全的在线平台,提供了一系列关于Web漏洞的教学和实验内容。PortSwigger Academy利用Burp Suite工具,为学习者提供了实操环境,以便更好地理解各种Web安全漏洞的原理和利用方法。这个平台的特点包括:

实操训练:通过基于Burp Suite的实验环境,学习者可以实际操作并体验Web漏洞的利用过程。

漏洞覆盖广泛:涵盖了服务器端、客户端以及高级Web漏洞等多个方面,帮助学习者全面了解Web安全问题。

适合不同水平:无论是初学者还是有一定基础的学习者,都可以通过这个平台提升自己的网络安全技能。

详细解析:每个实验都伴随着详细的内容解析,包括专题讲解、原理介绍、利用方法和实例分析等,便于学习者深入理解。

PentestedLab

PentesterLab是一个渗透测试平台,专为学习和实践Web应用渗透测试而设计。PentesterLab提供了多种常见的Web安全漏洞环境,使安全研究者和学习者能够在一个受控的环境中练习和提升渗透测试技能。以下是关于PentesterLab的一些详细信息:

学习资源:它包含了一系列教程和指南,帮助初学者理解各种漏洞的原理和利用技术。

漏洞覆盖:平台涵盖了多种常见的安全漏洞,包括但不限于代码注入、命令行注入和跨站脚本(XSS)等。

实践环境:通过在PentesterLab上进行实践,学习者可以在不影响真实网络环境的情况下,安全地尝试和学习攻击技术。

螣龙安科

螣龙安科作为一家网络安全技术公司,旨在为政府、企业、开发者和消费者等客户提供安全稳固且可信的网络空间生态环境。他们提供全方位的网络安全解决方案,帮助客户建立和维护网络安全防护体系。

NoSQLayer

NoSQL数据库是一种非关系型数据库,它支持多种数据模型并提供灵活的数据存储方案。以下是关于NoSQL的详细介绍:

基本概念:NoSQL代表“Not Only SQL”,意味着除了传统的关系型数据库(如MySQL, PostgreSQL)之外,还有一类数据库系统,它们不依赖于固定的表结构来存储数据。

CI/CD

CI/CD,即持续集成和持续部署,是一种自动化的软件开发实践,旨在加快开发流程并减少错误。CI/CD的核心在于自动化和频繁地向客户交付应用。它包括以下几个关键环节:

持续集成(CI) :是指在软件开发过程中,频繁地将代码集成到主干分支,以便快速发现和解决问题。这通常涉及到代码提交、静态代码检查、构建和测试等阶段。

持续部署(CD):是指将软件交付给用户的过程,这通常需要自动化的流程和运维开发(DevOps)的协作。持续部署确保了软件能够快速且安全地部署到生产环境。

SAST

SAST,即静态应用程序安全测试(Static Application Security Testing),是一种软件安全测试方法。以下是对SAST的相关介绍:

分析方式:SAST通过直接分析应用程序的源代码或二进制文件来检测潜在的安全漏洞。这种分析是在代码的静态视图上进行的,也就是说,在审查过程中代码并没有实际运行。 测试阶段:SAST通常在软件开发的编码阶段进行,以便尽早发现并修复安全问题。

DAST

DAST,即动态应用程序安全测试(Dynamic Application Security Testing),是一种在应用程序运行时进行的安全测试方法。DAST的核心优势在于:

攻击者视角:它从黑客的角度出发,模拟对应用程序的动态攻击,以便发现可能被利用的安全漏洞。

无需访问源代码:DAST不需要访问应用程序的源代码,这意味着它可以用于测试那些无法获取源代码的第三方应用或组件。

广泛的适用性:DAST支持当前主流的各种编程语言开发的应用,包括但不限于第三方框架和组件。

DevSecOps

DevSecOps是将安全性集成到DevOps文化和实践中的一种方法,旨在加快发布内在安全的软件。以下是一些关于DevSecOps的相关内容:

概念与目标:DevSecOps是一种文化和实践的变革,它强调在软件开发的早期阶段就集成安全考虑,而不是将安全作为后期补充。这种方法的目标是实现更快的发布周期,同时确保软件的安全性。

框架与原则:DevSecOps框架涉及到将安全性集成到软件开发生命周期的所有阶段,包括需求分析、设计、编码、测试和部署。这一过程遵循了一系列原则,如自动化、持续集成、持续交付和持续监控。

实践与工具:为了实现DevSecOps的目标,团队需要采用自动化工具来执行代码扫描、依赖性检查、漏洞评估等安全任务。这些工具可以帮助团队快速识别和修复潜在的安全问题,从而减少手动干预的需要。

沟通与协作:DevSecOps鼓励跨部门的沟通和协作,特别是在开发、运维和安全团队之间。通过共享知识和资源,团队可以更有效地应对安全挑战,并共同推动项目的成功。

Web 中间件

Web中间件是一种软件,位于操作系统和应用程序之间,旨在促进不同软件组件之间的通信和协作。它有时也被称为中间件服务器或应用服务器。Web中间件在Web开发中扮演着至关重要的角色。

DBMS

DBMS,即数据库管理系统,是用于操纵和管理数据库的大型软件系统。它的核心目的是简化用户与数据之间的交互过程,同时确保数据的安全性和完整性。

STRIDE威胁建模

STRIDE威胁建模是一种用于识别软件安全威胁的方法,由微软开发。

STRIDE模型涵盖了六种威胁类型,它们分别是:

Spoofing (仿冒) :攻击者冒充另一个用户或系统的身份,以获取未授权的数据或权限。

Tampering (篡改):攻击者未经授权地修改数据,可能导致信息或系统的完整性受损。

Repudiation (抵赖):攻击者执行某些操作后,无法追溯其行为,因此可以否认其进行过的操作。

Information Disclosure (信息泄漏):敏感信息被非授权的人或系统获取,这可能包括个人数据、商业秘密等。

Denial of Service (拒绝服务):攻击者使系统不可用,阻止合法用户访问资源或服务。

Elevation of Privilege (权限提升):攻击者通过各种手段提高自己的权限级别,从而访问或执行通常不被允许的操作。

安全开发生命周期

安全开发生命周期(Security Development Lifecycle, SDL)是一种软件开发方法论,旨在将安全性作为软件开发过程的一个内在部分,从项目启动之初到软件的退役,每一个阶段都融入安全考量。这种方法的目标是帮助开发团队识别并修复潜在的安全缺陷,减少软件产品中的漏洞,提高软件的整体安全性和合规性,同时尽量减少后期修复安全问题所带来的成本和风险。

递归学习

递归的核心在于将复杂问题分解为更小、更易管理的相似子问题,直至达到一个可以直接解决的基本情况(基线条件)。在学习场景中,这可以被解释为当你遇到一个难以直接理解的概念A时,你发现需要先了解概念B,而理解B又需要掌握C,以此类推,直到你找到一个可以直接理解和掌握的基本知识点X。掌握X后,你可以逐级返回,利用对X的理解去更好地掌握C,然后是B,最终完全理解A。这个过程类似于算法中的递归调用与回溯。

JWT(JSON Web Token)

JWT,全称为JSON Web Token,是一种开放标准(RFC 7519),用于在网络应用中安全地传输信息。

JWT的工作原理是通过将信息编码为JSON格式,然后对其进行加密,以确保信息的安全传输。它可以用于身份验证和授权,因为用户可以先向身份凭证服务器请求JWT,随后在每次请求时携带该令牌以证明自己的身份。

CORS

CORS,全称为Cross-Origin Resource Sharing,是一种网络通信技术,主要用于解决前端Web应用中的跨域请求问题。

CORS机制允许不同源的网页或脚本通过附加的HTTP头部信息来访问浏览器同源策略通常所限制的资源,如HTML、JavaScript、Web服务等。这种机制使得Web应用程序能够更加灵活地与不同域的服务器进行交互,而不受浏览器同源策略的限制。

在CORS中,浏览器会先向目标服务器发送一个预检请求(preflight request),询问目标服务器是否同意实际请求的源、方法和头信息。如果服务器响应表示同意,则浏览器会发送实际的请求,否则请求会被阻止。这个过程确保了跨域请求的安全性,因为它需要服务器的明确许可。

CVE-2010-1637

CVE-2010-1637是SquirrelMail中的一个漏洞,该漏洞存在于1.4.20及更早版本的Mail Fetch插件中。具体来说:由于SquirrelMail的Mail Fetch插件存在安全缺陷,远程认证用户可以利用这个漏洞绕过防火墙限制,并使用SquirrelMail作为代理进行内部网络扫描。这一过程可以通过修改POP3端口号来实现。

doPost 方法

doPost方法是Java Servlet中用于处理HTTP POST请求的一个方法。它是javax.servlet.http.HttpServlet类中的一个受保护的方法,需要被子类重写以提供具体的业务逻辑处理。当Web表单通过POST方法提交数据到服务器时,或者当客户端通过HTTP POST请求发送数据时,doPost方法会被调用。

Java Servlet

Java Servlet 是一种用Java语言编写的服务器端程序,它是Java EE(Enterprise Edition)平台的一部分,用于扩展Web服务器的功能,以提供动态内容和构建强大的Web应用程序。Servlet运行在支持Java的应用服务器或Servlet容器中,如Apache Tomcat、Jetty或JBoss/WildFly等,它们负责管理Servlet的生命周期,包括加载、初始化、处理请求、以及最终的销毁。

BAS(Breach & Attack Simulation Platform,自动化模拟攻击)

Breach and Attack Simulation (BAS) 平台是一种先进的网络安全技术,它通过自动化模拟现实世界中的网络威胁、漏洞利用和攻击策略,来持续测试和评估组织的防御能力。这类平台的设计目的是帮助安全团队识别安全控制中的盲点、弱点以及潜在的入侵路径,从而在不造成实际损害的情况下,提升组织的整体安全态势。

CVE-2021-42013

CVE-2021-42013是一个Apache HTTP Server的路径遍历漏洞,该漏洞是在尝试修复CVE-2021-41773漏洞时被发现的。CVE-2021-41773漏洞影响Apache HTTP Server 2.4.49版本,而CVE-2021-42013漏洞影响Apache HTTP Server 2.4.49和2.4.50版本。

漏洞成因: 在Apache HTTP Server 2.4.49版本中,ap_normalize_path函数在规范化路径时存在缺陷,导致攻击者可以通过路径遍历攻击访问受限资源。尽管Apache HTTP Server 2.4.50版本试图修复这个问题,但由于修复不彻底,攻击者仍然可以利用路径遍历漏洞访问Web目录之外的文件。

漏洞触发与利用: 攻击者可以构造特殊的URL请求,利用未被正确处理的路径编码,如.%%32%65(即.%2e的URL编码形式),来绕过安全限制,读取或执行服务器上不应公开的文件。如果服务器上启用了CGI脚本,攻击者还可以利用这个漏洞执行任意命令,实现远程代码执行(RCE)。

CVE-2021-41773

CVE-2021-41773是一个存在于Apache HTTP Server 2.4.49版本中的路径遍历和文件泄露漏洞。该漏洞是由Apache HTTP Server 2.4.49版本中引入的路径规范化更改中的一个缺陷导致的。攻击者可以利用这个漏洞发起路径遍历攻击,将URL映射到由Alias-like指令配置的目录之外的文件。

如果这些文件不受Apache的默认配置“require all denied”的保护,那么攻击者发出的恶意请求可能会成功。此外,如果为这些别名路径启用了CGI脚本,那么这个漏洞还可能允许远程执行代码。值得注意的是,这个问题只在Apache 2.4.49版本中发现,在之前的版本中并未出现。

漏洞的具体情况是,Apache HTTP Server 2.4.49中的ap_normalize_path函数存在逻辑错误,导致攻击者可以通过路径遍历攻击访问受限资源,甚至在没有适当配置访问控制的情况下,可以访问到服务器上的敏感文件。

CVE-2021-31760

CVE-2021-31760是一个影响Webmin的跨站请求伪造(CSRF)漏洞。Webmin是一个基于Web的界面,用于类Unix系统的管理工具,它允许用户通过任何现代Web浏览器轻松管理服务器。

该漏洞允许远程攻击者通过社工管理员,利用CSRF漏洞和XSS漏洞,实现对远程服务器的代码执行,进而控制并接管服务器。具体来说,攻击者可以构造一个恶意的HTML页面,当管理员在未登出Webmin的情况下访问该页面时,可以利用CSRF漏洞执行未授权的命令,例如创建具有高权限的用户或反弹shell,从而控制服务器。

Webmin

Webmin是一款功能强大的、基于Web的系统管理工具,主要用于Unix-like系统(包括各种Linux发行版、AIX、HPUX、Solaris、Unixware、Irix和FreeBSD等)的配置和管理。通过Webmin,系统管理员可以通过网页浏览器远程或本地访问服务器,完成多样化的系统管理任务,而无需直接登录服务器的命令行界面。这一特性极大地提高了管理效率,特别是对于那些不熟悉命令行操作的管理员而言更为友好。

Samesite Cookie

SameSite Cookie 是一种HTTP cookie属性,它用于增强Web应用程序的安全性,通过限制Cookie在跨站请求(Cross-Site Request)中的发送行为,从而有效防御跨站请求伪造(Cross-Site Request Forgery, CSRF)攻击。SameSite 属性允许网站开发者声明一个Cookie应该怎样随着请求一起发送到服务器。

双重 Cookie

双重Cookie验证是一种用于增强网络安全性的方法,特别是在防止跨站请求伪造(CSRF)攻击方面。CSRF攻击是一种利用网站对用户网页浏览器的信任,挟制用户在当前已登录的Web应用程序上执行非本意操作的攻击方法。在双重Cookie验证中,主要利用CSRF攻击不能获取到用户Cookie的特点,通过以下步骤实施:

1.在用户访问网站页面时,向请求域名注入一个Cookie,内容为随机字符串。这个Cookie可以是HTTPOnly的,这意味着它不能通过客户端脚本(如JavaScript)访问,从而增加了安全性。

2.在前端向后端发起请求时,除了携带常规的用户认证Cookie外,还需要取出之前注入的Cookie,并添加到URL的参数中或以其他方式包含在请求中。

3.后端接口在接收到请求后,会验证Cookie中的字段与URL参数中的字段(或其他请求中包含的字段)是否一致。如果一致,则接受请求;如果不一致,则拒绝请求。

这种方法的好处是,即使攻击者能够伪造用户的请求,但由于他们无法获取到注入的随机Cookie的值,因此无法使URL参数中的字段与Cookie中的字段匹配,从而无法成功发起CSRF攻击。

同源策略

同源策略(Same-Origin Policy)是Web安全的核心概念之一,它是浏览器的一种安全功能,旨在限制不同源(origin)之间的交互,以保护用户数据的安全。同源策略的主要作用是保护用户信息免受不同源的网页访问。它确保了敏感数据(如用户登录状态、个人信息等)的安全,防止了恶意脚本对数据的非法访问和操作。作为一个关键的安全措施,同源策略用于隔离潜在恶意文件,防止恶意网站窃取数据。

《Ethical Hacking and Penetration Testing Guide》

《Ethical Hacking and Penetration Testing Guide》是一本面向没有先验黑客经验的读者介绍道德黑客和渗透测试的书籍。这本书提供了一个完整的渗透测试或道德黑客攻击的步骤介绍,从开始到结束。读者将学习如何正确地使用和解释现代黑客工具的结果,这些工具是完成渗透测试所必需的。

书中涵盖了广泛的工具,包括但不限于Backtrack Linux、Google侦察、MetaGooFil、dig、Nmap、Nessus、Metasploit、Fast Track Autopwn、Netcat以及Hacker Defender rootkit。它以简单明了的方式解释了如何有效利用这些工具,并详细描述了一个四步方法论,用于进行有效的渗透测试或黑客攻击。

《黑客攻防技术宝典 Web 实战篇》

《黑客攻防技术宝典:Web实战篇》是一本专注于Web应用程序安全领域的专业书籍,由Dafydd Stuttard等人编写。这本书是安全专业人士和Web开发者的重要参考资料,特别适用于那些想要深入了解Web应用程序安全漏洞及防御措施的人员。

《白帽子讲 Web 安全》

《白帽子讲Web安全》是一本由吴翰清撰写的关于Web安全的专业书籍,该书出版于2012年3月,由电子工业出版社发行。这本书是基于作者多年实际工作中积累下来的丰富经验而写成的,它深入剖析了Web安全的各个方面,提供了丰富的案例和解决方案,对安全工作者具有很高的参考价值。

书中首先介绍了Web安全的基本概念和原理,包括同源策略、跨站脚本攻击(XSS)、跨站点请求伪造(CSRF)等常见的Web安全问题。然后,作者详细阐述了如何实施安全评估,包括资产等级划分、威胁分析、风险分析以及设计安全方案等关键步骤。此外,书中还介绍了白帽子兵法的思想,包括Secure by Default原则、纵深防御原则、数据与代码分离原则等,这些原则对于构建安全的Web系统至关重要。

在客户端脚本安全方面,书中深入探讨了浏览器安全机制、跨站脚本攻击的原理和防御方法、以及跨站点请求伪造等安全漏洞的利用和防范。此外,作者还分享了一些实用的工具和技巧,帮助读者更好地理解和应对Web安全问题。

《Web 之困:现代 Web 应用安全指南》

《Web之困:现代Web应用安全指南》是一本在Web安全领域享有高度评价的专业书籍,作者是Michal Zalewski,他是一位来自Google Chrome浏览器团队的世界顶级黑客及国际一流的安全专家。该书首次出版于2013年10月,由机械工业出版社发行。这本书被誉为Web安全领域的“圣经”,它不仅深刻探讨了现代Web浏览器的安全技术,还为安全工作者和Web开发人员提供了宝贵的实战指导。书中内容覆盖了Web应用安全的多个方面,从基础知识到高级攻防技巧,旨在帮助读者理解Web应用中的安全威胁、漏洞以及防御策略。