《Web安全基础》01. 基础知识

news2024/11/25 12:51:19

基础

  • 1:概念名词
    • 1.1:域名
    • 1.2:DNS
    • 1.3:网站开发语言
    • 1.4:后门
    • 1.5:Web
    • 1.6:Web 相关安全漏洞
  • 2:数据包
    • 2.1:HTTP
    • 2.2:HTTPS
    • 2.3:请求数据包
      • 2.3.1:Request 请求
      • 2.3.2:Response 响应
  • 3:网站搭建介绍
    • 3.1:网站环境
    • 3.2:后门注意事项
  • 4:Web 源码
    • 4.1:知识点
    • 4.2:信息敏感点
  • 5:数据库拓展
  • 6:操作系统拓展
  • 7:第三方拓展
  • 8:密码算法


这里只是起跑线而不是终点线。

1:概念名词

1.1:域名

  • 什么是域名

域名是用于标识 IP 地址的字符串。它用于将易于记忆的名称与 IP 地址相关联。

  • 域名在哪里注册

域名可以在许多互联网注册机构注册(如 GoDaddy、阿里云、腾讯等)。这些注册机构充当域名的托管人,并向公众出售域名。

  • 什么是二级域名或多级域名

二级域名和多级域名是基于域名的层次结构而产生的。

二级域名分为两种。

在国际顶级域名下的二级域名
国际顶级域名下二级域名,一般是指域名注册人选择使用的网上名称,如 “ yahoo.com ” ;
上网的商业组织通常使用自己的商标、商号或其他商业标志作为自己的网上名称,如 “ microsoft.com ” 。

国家顶级域名下二级域名
一般是指类似于国际顶级域名的表示注册人类别和功能的标志。例如,在 “ .com.cn ” 域名结构中,“ .com ” 此时是置于国家顶级域名 “ .cn ” 下的二级域名,表示商业性组织,以此类推。

  • 域名发现对于安全测试意义

在安全测试中,域名发现是指寻找与目标网站相关的所有域名。
这些域名可能包括子域名、备用域名、相关域名等。

域名发现可以揭示潜在的攻击面,可以帮助安全测试人员发现可能存在的漏洞和安全问题。

1.2:DNS

  • 什么是 DNS

DNS(Domain Name System)是一个用于将域名转换为 IP 地址的系统。这个过程被称为域名解析

DNS 使用 UDP 端口 53。对于每一级域名长度的限制是 63 个字符,域名总长度则不能超过 253 个字符。

  • 本地 HOSTS 与 DNS 的关系

本地 HOSTS 文件是一个本地的域名-IP地址映射文件。当计算机需要访问特定的域名时,它会首先查找本地 HOSTS 文件,以确定该域名对应的IP地址。如果本地 HOSTS 文件中没有该域名的映射,则计算机将向 DNS 服务器发送查询以获得 IP 地址。

Hosts 文件路径:C:\Windows\System32\drivers\etc\hosts

  • CDN 是什么

CDN(Content Delivery Network)是构建在数据网络上的一种分布式的内容分发网。是一个由多个服务器组成的网络,用于提供快速可靠的内容传递服务。
CDN 通过将内容存储在靠近用户的服务器上,以加速用户访问网站和应用程序的速度。

  • CDN 与 DNS 的关系

CDN 使用 DNS 来解析访问网站或应用程序所需内容的 IP 地址,并根据用户的位置选择最近的服务器来提供内容。

  • 常见的 DNS 安全攻击有哪些

常见的 DNS 安全攻击包括 DNS劫持、域名劫持、缓存投毒和 DDoS 攻击。

1.3:网站开发语言

  • 常见的网站开发语言有哪些

asp、php、aspx、jsp、java、javascript、python、ruby 等

  • 不同网站开发语言与安全漏洞的关系

关系比较复杂。安全漏洞可能与语言特定的漏洞有关,也可能与编程人员的错误或不安全实践有关。

  • 漏洞挖掘、代码审计与不同网站开发语言的关系

漏洞挖掘和代码审计都需要理解不同语言的语法和特定的漏洞类型,并使用适当的工具和技术来识别和纠正潜在的安全问题。

1.4:后门

  • 什么是后门

后门(Backdoor)是植入到系统或应用程序中的一种特殊代码或程序方法,以便攻击者绕过安全性控制,从而获取应用或系统的访问权。

在软件的开发阶段,程序员常常会在软件内创建后门程序以便可以修改程序设计中的缺陷。

  • 有那些后门

常见的后门类型:后门用户账号、后门服务、后门脚本、后门漏洞

  • 后门在安全测试中的实际意义

安全测试中,安全测试人员需要通过使用各种技术和工具来识别和验证是否存在后门,以便在攻击者之前发现和修复安全漏洞。

  • 关于后门需要了解哪些

需要了解攻击者通常会利用后门访问系统来获取敏感信息、篡改数据、窃取证书、加密文件等。
此外,攻击者还可能使用各种技术和工具来免杀后门与隐藏后门,或通过零日漏洞等未知漏洞来绕过安全控制。

1.5:Web

  • Web 的组成架构模型

网站源码:分为脚本类型,分为应用方向
操作系统:windows、linux
中间件(Web搭建平台):apache iis tomcat nginx 等
数据库:access、mysql、oracle、sybase 等

  • 架构漏洞安全测试简要介绍

架构漏洞指在系统设计或实现中存在的潜在安全问题。

架构漏洞安全测试主要包括:系统架构分析、模拟攻击、风险评估、测试报告编写。

  • 为什么要从 Web 层面为主为首

原因:
Web 应用通常是面向公众的,具有高度可访问性,易受攻击。
Web 网站漏洞相对较多,便于入侵服务器。
Web 作为跳板深入到其他资源相对容易。

1.6:Web 相关安全漏洞

  • Web 源码类漏洞

SQL 注入,文件上传,XSS,代码执行,变量覆盖,逻辑漏洞,反序列化等

  • Web 中间件漏洞

未授权访问,变量覆盖

  • 数据库漏洞

弱口令,权限提升

  • 系统层漏洞

提权,远程代码执行

  • 第三方应用漏洞
  • APP 或 PC 应用结合类

2:数据包

2.1:HTTP

HTTP 协议运行在 TCP 之上,所有传输内容都是明文。端口:80

HTTP 简要通信过程

  1. 浏览器建立与 web 服务器之间的连接。
  2. 浏览器将请求数据打包(生成请求数据包)并发送到 web 服务器。
  3. web 服务器将处理结果打包(生成响应数据包)并发送给浏览器。
  4. 关闭连接。

2.2:HTTPS

HTTPS 运行在 SSL/TLS 之上,SSL/TLS 运行在 TCP 之上,所有传输的内容都经过加密。端口:443

HTTPS 简要通信过程

在这里插入图片描述

HTTPS 协议需要到 CA 申请证书,一般免费证书很少,需要交费。

2.3:请求数据包

详见《网络协议从入门到底层原理》系列。这里只简单介绍。

2.3.1:Request 请求

HTTP 规划定义了 8 种可能的请求方法:

请求方法含义
GET检索 URL 中标识资源的一个简单请求
HEAD与 GET 方法相同,但服务器只返回状态行和头标,并不返回请求文档
POST服务器接受被写入客户端输出流中的数据的请求
PUT服务器保存请求数据作为指定 URL 新内容的请求
DELETE服务器删除 URL 中命令的资源的请求
OPTIONS关于服务器支持的请求方法信息的请求
TRACEweb 服务器反馈 Http 请求和其头标的请求
CONNECT已文档化,但当前未实现的一个方法,预留做隧道处理

请求头由 关键字/值 组成,每行一对,关键字和值用冒号分隔:

请求头含义
Host主机或域名地址
Accept指浏览器或其他客户可以接爱的 MIME 文件格式。Servlet 可以根据它判断并返回适当的文件格式
User-Agent客户浏览器名称
Accept-Langeuage指出浏览器可以接受的语言种类
Connection用来告诉服务器是否可以维持固定的 HTTP 连接
Cookie浏览器用这个属性向服务器发送 Cookie
Referer表明产生请求的网页 URL。这个属性可以用来跟踪 Web 请求是从什么网站来的
Content-Type用来表名 request 的内容类型
Accept-Charset指出浏览器可以接受的字符编码
Accept-Encoding指出浏览器可以接受的编码方式

使用 POST 传送,最常使用的是 Content-TypeContent-Length 头标。

2.3.2:Response 响应

HTTP 响应码:

  • 1xx:信息,请求收到,继续处理
  • 2xx:成功,行为被成功地接受、理解和采纳
  • 3xx:重定向,为了完成请求,必须进一步执行的动作
  • 4xx:客户端错误
  • 5xx:服务器错误

可根据状态码来初步判断请求的文件在服务器的状况:

  • 200:存在文件
  • 403:存在文件夹
  • 3xx:均可能存在
  • 404:不存在文件及文件夹
  • 500:均可能存在

3:网站搭建介绍

3.1:网站环境

常见搭建平台语言
asp,php,aspx,jsp,py,javaweb 等环境。

域名、IP目录解析安全问题
域名扫描只能扫描出来域名文件,而域名文件只占服务器资源的一小部分;IP扫描可以直接扫描服务器根目录,得到的信息更多。

Web 源码中敏感文件
后台路径,数据库配置文件,备份文件等。

文件后缀解析对应安全
可能存在下载或解析问题。

3.2:后门注意事项

  • 后门是否给予执行权限
  • 后门是否给予操作目录或文件权限
  • 后门是否给予其他用户权限

4:Web 源码

Web 源码在安全测试中是非常重要的信息来源,源码的获取将为后期的安全测试提供更多的思路,可以用来代码审计也可用来做信息突破口,其中 Web 源码有很多技术需要简明分析。

4.1:知识点

  • Web 源码目录结构
  • Web 源码脚本类型
  • Web 源码应用分类
  • Web 源码其他说明

4.2:信息敏感点

  • 敏感目录结构
    数据库配置文件,后台目录,模版目录,数据库目录等

  • Web 脚本类型
    asp,php,aspx,jsp,javaweb 等脚本类型源码

  • 应用分类

    • 电商:业务逻辑漏洞
    • 论坛:xss 逻辑漏洞
    • 门户:综合类漏洞
    • 第三方:根据功能决定
    • 博客:漏洞较少
  • 开源,未开源问题

    • 开源:直接找漏洞或代码审计
    • 内部:常规漏洞测试
  • 框架,非框架问题

  • CMS 识别问题
    style.css 文件可以用来生成 md5 值来查寻 cms 框架。
    可以通过网页刷新时加载的文件来搜索 cms。

关于源码获取的相关途径:搜索,咸鱼淘宝,第三方源码站

5:数据库拓展

识别数据库类型常用方法

nmap -O ip地址
nmap ip地址 -p 端口(通过端口开放反推数据库)

数据库类型识别意义

  • 数据库漏洞和类型相关性很强。
  • 不同数据库漏洞爆发点不太一样。
  • 能确定数据库类型、版本,会对渗透有很大帮助。

数据库常见漏洞类型及攻击

  • 弱口令
  • sql 注入

数据库层面漏洞要参考数据库的重要程度来判定影响范围。

常见语言与数据库

  • asp + access
  • php + mysql
  • axpx + mssql
  • jsp + mssql,oracle
  • python + mongodb

数据库端口

  • 关系型数据库:

MySQL:3306
SqlServer:1433
Oracle:1521

  • 非关系型数据库:

MongoDB:27017
Redis:6379
memcached:11211

6:操作系统拓展

识别操作系统常见方法

  • Windows 对大小写不敏感,Linux 敏感。
  • 看 ping 命令的 ttl 值
    • ttl 在 64 左右:Linux
    • ttl 在 128 左右:Windows
  • nmap -O ip

操作系统识别意义

  • 可以明确思路
  • 可以筛选掉不不适用系统的情况

操作系统层面漏洞

  • 覆盖面广
  • 获取的权限高
  • 危害性大

7:第三方拓展

判断第三方平台或软件

  • 端口扫描
  • 特征匹配

识别第三方的意义

  • 可以提供额外的攻击面

常见第三方漏洞

  • 弱口令

除去常规 web 安全及 app 安全测试外,服务器单一或复杂的其他服务(邮件,游戏,负载均衡等)),也可以作为安全测试目标,此类目标测试原则只是少了 Web 应用或其他安全问题方面。

8:密码算法

常见密码、编码等算法

  • MD5
  • SHA
  • ASC
  • 进制
  • 时间戳
  • URL
  • BASE64
  • Unescape
  • AES
  • DES

常见加密形式

  • 直接加密
  • 带 salt
  • 带密码
  • 带偏移
  • 带位数
  • 带模式
  • 带干扰
  • 自定义组合

常见解密方式

  • 枚举
  • 自定义逆向算法

了解常规加密算法的特性

  • 长度位数
  • 字符规律
  • 代码分析
  • 搜索获取

南湖秋水夜无烟,耐可乘流直上天。

——《游洞庭湖五首 · 其二》(唐)李白

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/571240.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux Centos7 jar包方式安装Jenkins服务

1、本文是在VM虚拟机下安装的Centos7,这一步不赘述,有很多教程。 2、配置好静态IP,可参考Linux配置静态IP地址_cylemon的博客-CSDN博客 3、本文是通过XShell连接linux来操作linux系统的。配置JDK1.8及以上环境。先查看一下当前环境是否已存…

三、JavaWeb从入门到熟练

一、JavaWeb概述 Java Web,是用Java技术来解决相关web互联网领域的技术栈。web包括:web服务端和web客户端两部分。Java在客户端的应用有Java Applet,不过使用得很少,Java在服务器端的应用非常的丰富,比如Servlet&…

chatgpt赋能python:Python做聊天程序:打造智能交流

Python 做聊天程序:打造智能交流 Python 是一种易于学习、灵活性强、最近几年得到广泛应用的编程语言。在当今数字化时代,即便是日常生活中我们都需要与人交流,但人们社交媒体的繁荣已经印证了人们对在线交流工具的需求。以下将对 Python 如…

澳洲学生用ChatGPT代写?澳洲多所高校使用全新反击工具检测

朋友们听句劝 ChatGPT可太危险了 ChatGPT有多火?据2月1日瑞银发布的一项研究报告显示,仅仅发布两个月,ChatGPT月活跃用户已达1亿,这是历史上增长速度最快的应用。要知道达成1亿用户的时间,Instagram用了2.5年&#xf…

【013】C++数组之一维数值数组和二维数值数组

一维数值数组和二维数值数组 引言一、一维数值数组1.1、概念1.2、一维数值数组的定义1.3、一维数值数组的初始化1.4、一维数值数组的元素操作1.5、使用示例 二、二维数值数组2.1、概述2.2、二维数值数组的初始化2.3、二维数值数组的元素操作2.4、使用示例 总结 引言 &#x1f4…

​LeetCode解法汇总1091. 二进制矩阵中的最短路径

目录链接: 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接:力扣 描述: 给你一个 n x n 的二进制矩阵 grid 中,返回矩阵中最短 畅通路径 的长…

修改优美移动端中间的老师的轮播图

副标题在高级内容那,如果缩略图上传不上去。那就是改一下图片名字,多刷新几次试试

Java程序设计入门教程--整数类型

举例 int x123; //指定变量x为int型,且赋初值为123 byte b8; //指定变量b为byte型,且赋初值为8 short s10; //指定变量s为short型,且赋初值为10 long y123L,z123l; //指定变量y,z为long型,且分别赋初值为123 示例代…

公文写作素材:为人处世类过渡句50例

1.身处逆境,敢于亮剑,坚毅前行,方能逆势突围;面对困难,坚定信心,敢拼敢闯,定能笑到最后。 2.没有海纳百川的胸怀,怎能容得下不同性格的人;没有从善如流的雅量&#xff0…

Python中处理无效数据的详细教程(附案例实战)

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

云原生之深入解析Kubernetes的网络模型

一、前言 Kubernetes 是为运行分布式集群而建立的,分布式系统的本质使得网络成为 Kubernetes 的核心和必要组成部分,了解 Kubernetes 网络模型可以使你能够正确运行、监控和排查应用程序故障。网络所涉及的内容很多,拥有许多成熟的技术。对于…

chatgpt赋能python:Python做GUI:介绍与优化SEO

Python做GUI:介绍与优化SEO Python是一种受欢迎的编程语言,尤其是在数据分析和开发领域。但是,Python也可以用于GUI(图形用户界面)应用程序的开发。在本文中,我们将介绍Python GUI开发的基础知识&#xff…

滤镜美颜sdk的实现方式和工作流程:从技术层面了解美颜算法

众所周知,实现美颜功能的核心技术之一就是滤镜美颜sdk。在本文中,我们将从技术层面来探讨滤镜美颜sdk的实现方式和工作流程,帮助读者更深入了解美颜算法。 一、美颜算法的基本原理 美颜算法的基本原理是通过图像处理技术,对人物…

第十八章_Redis缓存预热+缓存雪崩+缓存击穿+缓存穿透

缓存预热 缓存预热就是系统启动前,提前将相关的缓存数据直接加载到缓存系统。避免在用户请求的时候,先查询数据库,然后再将数据缓存的问题!用户直接查询事先被预热的缓存数据。 可以通过PostConstruct初始化白名单数据 缓存雪崩 …

23种设计模式之命令模式(Command Pattern)

前言:大家好,我是小威,24届毕业生,在一家满意的公司实习。本篇文章将23种设计模式中的命令模式,此篇文章为一天学习一个设计模式系列文章,后面会分享其他模式知识。 如果文章有什么需要改进的地方还请大佬不…

CASIA-FaceV5 抠出的人脸数据集

CASIA-FaceV5亚洲人脸数据集,以该数据集作为测试集所生成的同一人和不同人对应的测试文件。 CASIA-FaceV5亚洲人脸数据集有500人、每个人5张图片,共2500张图片,图片大小为640*480。数据集共有500个文件夹,文件夹名称为&#xff1…

【实战记录】手游内存优化(内存泄露检测)

故事背景: 手上有一个完整的页游项目,线上运营数据还不错,所以打算把这个项目手游化。因为这个项目本来就是用cocos的creator写的,所以手游化成本比较低,在修改了大概6~7个只能在页游上运行的接口后&#xff0…

Ansible介绍

文章目录 Ansible介绍Ansible的架构为什么要有Ansible TowerAnsible Tower Ansible介绍 Ansible是一种自动化工具,可以用于自动化部署、配置和管理IT基础设施。它是一种基于Python的开源软件,提供了一个简单易用的语言和工具集,使得自动化管…

内网渗透—代理Socks协议、路由不出网、SMB绕过、CS-MSF控制上线

内网渗透—代理Socks协议、路由不出网、SMB绕过、CS-MSF控制上线 1. 前言1.1. 实验背景1.2. 环境准备1.2.1. 环境介绍1.2.2. 环境测试 2. CS上线2.1. Windows2008上线2.2. Windows2003上线2.2.1. 设置socks代理2.2.2. 设置正向连接2.2.3. 生成木马2.2.4. 上线木马 2.3. Windows…

Flutter数据库操作看这一篇就够了

文章目录 Flutter常用数据库操作库最常用的sqflite介绍简介举例 依赖sqflite,单例模式封装一个sqlite操作类说明initDb说明conflictAlgorithm说明 Flutter常用数据库操作库 Flutter是一种跨平台的移动应用程序开发框架,支持使用多种类型的数据库进行数据存储和管理…