网络安全基础入门(一)——网安常用术语与Web常规

网络安全基础入门(一)——网安常用术语与Web常规

知识点

  • 网安常用术语
  • 网站的常见模式
  • Web必备四大件
  • 中间件配置对渗透的影响
  • 文件访问解析由什么决定
  • 数据库存储数据库站分离
  • 数据库的部署模式对渗透测试的影响
  • 源码加密开闭源类型
  • 源码对渗透的影响

网安常用术语

大佬已经总结得很完整了,这里就不进行赘述了
https://www.cnblogs.com/sunny11/p/13583083.html

网站的常见模式

网站的三种常见展示模式是子域名模式、端口模式和目录模式。这些模式用于确定如何访问网站的特定部分或页面,具体取决于网站的架构和设计。

一、 子域名模式(Subdomain Mode): 在子域名模式下,不同的部分或功能通常通过不同的子域名来访问。子域名是主域名的扩展,通常以子域名前缀的形式出现,如"blog.example.com"、"shop.example.com"等。每个子域名可以独立指向不同的服务器或目录,因此可以提供不同的内容或功能。

二、端口模式(Port Mode): 端口模式涉及使用不同的端口号来访问网站的不同部分或功能。每个端口号对应于不同的服务器应用或服务,例如,HTTP通常使用端口80,HTTPS使用端口443。通过不同的端口,用户可以访问不同的网站功能。

三、目录模式(Directory Mode): 在目录模式下,不同的部分或功能通过添加到URL路径的不同目录来访问。例如,网站的根目录(如example.com)通常包含主页,而子目录(如example.com/blog、example.com/products) 将引导用户到网站的不同部分。这些目录通常用于组织和存储相关内容。

四、其他模式

  1. 集成软件(Integrated Software): 某些网站会与其他软件进行集成,以提供特定功能或服务。这种集成可以包括社交媒体分享按钮、地图应用程序、在线支付服务、在线聊天或即时通讯等。这些集成软件可以增强网站的功能和用户体验。

  2. Docker容器: Docker是一种容器化技术,允许开发人员将应用程序和其依赖项封装为容器,以便在不同环境中运行。有些网站使用Docker容器来部署和管理应用程序,以提供更高的可移植性和灵活性。

  3. 分配站(Microsite): 分配站是一个相对独立的网站,通常关联到主网站,用于特定活动、产品、宣传活动或营销活动。它可以具有自己的独立域名或子域名,以提供特定内容或体验。

web必备四大件

系统(System)

整个Web应用程序的基础架构和服务器环境。这包括硬件、操作系统(linux/windows)、网络设置和服务器(IIS和Apache等)配置,以确保Web应用程序正常运行。

中间件(Middleware)

中间件是位于应用程序和服务器之间的软件层,用于处理各种任务,如身份验证、会话管理、请求路由、缓存、数据转换等。中间件允许开发人员处理应用程序的特定方面,而不必关心底层的HTTP通信。常见的中间件包括Express.js(用于Node.js应用程序)、Django Middleware(用于Python应用程序)等。

中间件配置对渗透过程的影响

1、身份验证和授权: 中间件通常涉及身份验证和授权机制,以确保只有授权的用户能够访问应用程序。不正确的身份验证和授权配置可能导致未经授权的访问,使攻击者能够执行未经授权的操作。

2、目录权限:目录权限决定了哪些文件和目录可以被访问。如果目录权限设置不当,攻击者可能能够访问不应公开的文件或目录,包括敏感数据、配置文件或源代码。这可能导致敏感信息泄露和攻击。如目录遍历攻击。不正确的目录权限配置可能使攻击者能够尝试目录遍历攻击,通过修改URL或请求来访问系统文件或其他目录中的文件。这可能导致敏感文件的泄露。

3、解析规则:解析规则定义了Web服务器如何处理不同类型的请求。如果解析规则配置不当,可能会导致不正确的请求解释或执行。不正确的配置可能允许用户上传恶意文件,然后执行它们,从而导致代码执行漏洞。配置不正确的文件类型处理规则可能导致恶意文件被解释为合法文件类型,例如将恶意JavaScript文件解释为图像文件。这可能导致跨站脚本(XSS)攻击。

数据库(Database)

数据库用于存储和管理应用程序的数据。Web应用程序通常需要与数据库交互,以检索、存储和管理数据,如用户信息、产品信息、订单记录等。常见的数据库包括MySQL、PostgreSQL、MongoDB、Oracle等。

数据库的部署模式

数据库有两种常见部署模式,包括本地存储和站库分离

本地存储: 本地存储模式是将数据库服务器与应用程序部署在同一物理或虚拟服务器上的方式。这种模式适用于小型应用程序或需要高度定制化的情况。它通常具有低延迟,但需要开发人员负责数据库的管理、备份和扩展。

站库分离: 站库分离模式将应用程序服务器和数据库服务器分开部署,它们可以在不同的物理或虚拟服务器上运行。这种模式有助于提高应用程序的扩展性和性能,同时使数据库管理更容易。常见的站库分离方案包括:将应用程序和数据库部署在不同服务器上,以及将应用程序部署在本地服务器,而数据库部署在云数据库服务中(如AWS RDS、Azure SQL等)。

  • 云数据库:一种将数据库托管在云计算平台上的数据库解决方案。它们提供了数据库的弹性扩展、高可用性、备份和恢复等功能,使用户能够更轻松地管理和访问他们的数据。

数据库的部署模式对渗透测试的影响

不同的部署方式具有不同的安全风险和威胁模型,只有成功连接上数据库,我们才能对数据库产生影响。渗透测试人员需要根据具体情况选择适当的方法,以评估数据库的安全性和发现潜在的漏洞

1、本地存储:网站和数据库存储在同一个服务器中,如果数据库放在本地,那么拿到了网站的数据,一般也能拿到数据库的数据

2、站库分离:网站和数据库不在同一个服务器中,拿到了网站的数据,也不一定能拿到数据库

3、存在云数据库:相比传统的服务器,云安全系数更高,登录方式和安全组等安全配置更加复杂。同云数据库相似的还有OSS,网站文件不在存储在本地,而是存储在OSS中,OSS只做存储使用,不会执行我们上传的后门。这种情况下,数据库一般难以攻破,建议先从别的方向入手

源码(Source Code)

"源码" 是指Web应用程序的实际代码,通常由开发人员编写。这包括前端代码(HTML、CSS、JavaScript)和后端代码(如服务器端脚本、应用程序逻辑)。源码定义了应用程序的行为和功能。如果能拿到源码我们就可以进行白盒测试。

源码的类型

1、开源

(1)开源可见

(2)开源不可见:源码加密,语言特性决定的(比如java编译好的都是class文件,打开都是字节码)

2、商业

3、自用

源码对渗透的影响

1.源码有数据库目录,后台目录,文件目录等资源信息

2.路由访问:源代码定义了如何根据URL请求将用户导向不同的页面或执行不同的操作。源代码中包括路由规则和与之相关的控制器逻辑

3.漏洞识别: 渗透测试人员可以通过审查源代码来识别潜在的漏洞,例如代码注入、跨站点脚本(XSS)、跨站点请求伪造(CSRF)、安全配置错误等。在源代码中发现漏洞使渗透测试人员能够更准确地定位问题。

4.自定义攻击: 渗透测试人员可以根据源代码的结构和逻辑创建定制化的攻击向量。这样,他们可以更好地了解应用程序的内部工作原理,以进行高度定制的攻击。

5.数据流跟踪: 渗透测试人员可以追踪数据流,了解敏感数据如何在应用程序中传递和处理。这有助于发现潜在的数据泄漏和隐私问题。

6.代码审查: 渗透测试人员可以执行源代码审查,以评估应用程序是否符合安全最佳实践、安全编码规则和安全性标准。他们还可以查看是否存在不安全的编码模式和漏洞。

7.自动化工具: 渗透测试工具可以使用源代码来加快漏洞探测。例如,静态代码分析工具可以扫描源代码以识别潜在漏洞,如不安全的函数调用、未经验证的输入、潜在的XSS和SQL注入等。

8.安全配置: 渗透测试人员可以审查源代码以查找不安全的配置设置,例如默认凭据、开放的端口、敏感文件和目录的访问控制问题。这有助于发现可能导致安全漏洞的配置错误

posted @ 2023-10-24 14:19  hong-34  阅读(136)  评论(0)    收藏  举报