信息安全实验6:SQL注入(数字注入)
1 实验环境
操作系统版本:Windows 11 家庭中文版23H2
VMware® Workstation 16 Pro:16.2.3 build-19376536
Metasploitable2虚拟机版本:2.6.24-16-server
Kali虚拟机版本:6.6.9-amd64
2 实验内容2.1 判断注入点与注入类型(1)分别测试输入:1、1”和1’。
图2.1 判断注入类型:输入1
图2.2 判断注入类型:输入1”
图2.3 判断注入类型:输入1’
由图2.1所示,从url可知,页面采用GET方法提交数据。由图2.2和图2.3可知,输入1”和1’后不能正确得到查询结果,所以推测注入类型为数字型注入,同时输入的单引号和双引号均被转义,可以推测数据库为MySQL。
(2)测试输入:2 and 2 = 2和2 or 2 = 2
图2.4 判断注入类型:输入2 and 2 = 2
由图2.4可知,当输入“2 and 2 = 2”时,其中后面的and条件始终成立,所以查询的条件还是前面的1起作用,所以查询的结果即为查询id是1 ...
数据结构面经3:栈、队列和串
1 栈和队列的区别和存储结构1.1 栈定义:只允许在表尾(栈顶)进行插入和删除的线性表,“先进后出”
顺序栈:数组(存放栈中元素)、栈顶指针
链栈:栈顶是一个指针
1.2 队列定义:只允许在表的一端(队尾)插入,在另一端(队首)删除的线性表,“先进先出”
顺序队列:数组(存放队列中元素)、头指针、尾指针
链式队列:队首指针、队尾指针
两个栈模拟一个队列:队列是先进先出,栈的是先进后出。同一组数据连续执行两次先进后出之后再出栈就可以实现队列的先进先出。
2 共享栈利用栈底位置相对不变的特性,让两个顺序栈共享一个一维数组空间,将两个栈的栈底分别设置在共享空间的两端,两个栈顶向共享空间的中间延伸。这样能够更有效的利用存储空间,防止上溢。
3 如何区分循环队列是队空还是队满?一般情况,队空和队满的判断条件都是Q.front == Q.rear,可以使用以下2种方法来进行区分:
(1)方法1:牺牲一个单元(即最后一个单元不存数据)来区分队空和队满
队空:Q.front == Q.rear
队满:(Q.rear + 1) % MaxSize == Q.front
元素个数:(Q.r ...
Diffusion Model
1 Diffusion Model原理1.1 整体实现
首先要生成一个和要生成图片相同大小的杂讯的图,然后没通过一个Denoise Network就把噪音过滤掉一些,把这个过程做很多次,就可以得到想要的图片。其中Denoise进行的步骤是实现规定好的,对每个Denoise分配一个编号,越靠近最终的图片,编号越小。想要的图片其实就在噪音中,只不过把不想要的部分去除,
上述过程称为reverser process,把同一个Denoise Model使用很多次。但是由于每次输入的图片差异较大,因此如果是同一个模型,可能不一定做的很好。
所以这个model除了会接收图片的输入,还会接收一个当前这个图片noise的程度的输入,1000代表现在noise部分很大,而1代表现在噪音占比很小。
1.2 Denoise内部实现
Noise Predicter:预测这张图片中杂讯的分布,先学习加噪,再进行减噪
把Noise Predicter输出预测的杂讯剪掉一开始的输入,就得到去掉部分噪音之后的图片。
为什么要这么设计:因为产生满足噪声分布的数据更简单,因此学习噪声的分布。
1.3 如何训练Noi ...
数据结构面经2:线性表
1 各种线性表1.1 优缺点顺序表
优点:可以随机存取,快;存储密度大
缺点:插入、删除效率低;存储空间固定,分多了浪费,分少了又不足
单链表
优点:插入、删除效率高;空间可动态分配
缺点:不能随机存取,要顺序存取,慢;存储密度不大(有指针域)
静态链表:融合顺序表和单链表的优点,既能快速访问元素,又能快速插入、删除元素
1.2 对比1.2.1 存取(读写)方式顺序表可以顺序存取,也可以随机存取,链表只能从表头顺序存取元素。例如在第i个位置上执行存或取的操作,顺序表仅需一次访问,而链表则需从表头开始依次访问i次。
1.2.2 逻辑结构与物理结构采用顺序存储时,逻辑上相邻的元素,对应的物理存储位置也相邻。而采用链式存储时,逻辑上相邻的元素,物理存储位置则不一定相邻,对应的逻辑关系是通过指针链接来表示的。
1.2.3 查找、插入和删除操作对于按值查找,顺序表无序时,两者的时间复杂度均为$O(n)$;顺序表有序时,可采用折半查找,此
时的时间复杂度为$O(log_2n)$ 。
对于按序号查找,顺序表支持随机访问,时间复杂度仅为$O(1)$, 而链表的平均时间复杂度为$O(n)$ 。 ...
数据结构面经1:绪论
1 时间复杂度一个语句的频度是指该语句在算法中被重复执行的次数。算法中所有语句的频度之和记为$T(n)$,它是该算法问题规模$n$的函数。
时间复杂度主要分析$T(n)$的数量级。算法中基本运算(最深层循环内的语句)的频度与$T(n)$同数量级,因此通常采用算法中基本运算的频度$f(n)$来分析算法的时间复杂度。因此,算法的时间复杂度记为$$ T(n) = O(f(n))$$
$O$的含义是$T(n) $的数量级,其严格的数学定义是:若$T(n)$和$f(n)$是定义在正整数集合上的两个函数,则存在正常数$C$和$n_0$,使得当$n \geq n_0$时,都满足$0 \leq T(n) \leq Cf(n)$ 。
算法的时间复杂度不仅依赖于问题的规模$n$,也取决于待输入数据的性质(如输入数据元素的初始状态)。
2 空间复杂度算法的空间复杂度$S(n)$定义为该算法所耗费的存储空间,它是问题规模$n$的函数。记为
$$S(n)=O(g(n))$$
一个程序在执行时除需要存储空间来存放本身所用的指令、常数、变量和输入数据外,还需要一些对数据进行操作的工作单 ...
d2l学习笔记1:第3章线性回归课后题
1 线性回归1.1 问题1假设我们有一些数据$x_1, \ldots, x_n \in \mathbb{R}$。我们的目标是找到一个常数$b$,使得最小化$\sum_i (x_i - b)^2$。
找到最优值$b$的解析解。
这个问题及其解与正态分布有什么关系?
1.1.1 第一问线性回归的解可以用一个公式简单地表示,这类解叫做解析解。
$$\begin{array}{c}\underset{b}{\operatorname{argmin}} \sum_{i=1}^{n}\left(x_{i}-b\right)^{2} \ \Rightarrow \frac{\partial \sum_{i=1}^{n}\left(x_{i}-b\right)^{2}}{\partial b}=0 \ \Rightarrow \sum_{i=1}^{n}\left(x_{i}-b\right)=0 \ \Rightarrow \sum_{i=1}^{n} x_{i}=n b \ \Rightarrow b=\frac{ ...
操作系统面经4:文件管理和输入输出管理
1 文件管理
1.1 文件的基本操作?文件属于抽象数据类型。为了恰当地定义文件,就需要考虑有关文件的操作。操作系统提供系统调用,它对文件进行创建、写、读、定位和截断。
创建文件:创建文件有两个必要步骤,一是在文件系统中为文件找到空间;二是在目录中为新文件创建条目,该条目记录文件名称、在文件系统中的位置及其他可能信息。
写文件:为了写文件,执行一个系统调用,指明文件名称和要写入文件的内容。对于给定文件名称,系统搜索目录以查找文件位置。系统必须为该文件维护一个写位置的指针。每当发生写操作,便更新写指针。
读文件:为了读文件,执行一个系统调用,指明文件名称和要读入文件块的内存位置。同样,需要搜索目录以找到相关目录项,系统维护一个读位置的指针。每当发生读操作时,更新读指针。一个进程通常只对一个文件读或写,所以当前操作位置可作为每个进程当前文件位置指针。
由于读和写操作都使用同一指针,节省了空间也降低了系统复杂度。
文件重定位(文件寻址):按某条件搜索目录,将当前文件位置设为给定值,并且不会读、写文件。
删除文件:先从目录中找到要删除文件的目录项,使之成为空项,然后回收该文件所占用的存 ...
基于脸部视频图像的早期老年痴呆诊断技术综述
1 摘要老年痴呆症是一种起病隐匿、呈进展性发展的神经系统退行性疾病。随着人口老龄化加剧,早期诊断老年痴呆对于阻止疾病发展至关重要。其中,基于脸部视频图像的老年痴呆诊断技术通过捕捉和分析患者的面部表情、动作等信息,为非侵入性诊断提供了新途径。综述近些年使用计算机视觉来进行面部识别进而诊断老年痴呆症相关的研究,尽管面临患者间面部特征差异大、诊断模型普适性不足等挑战,但该技术仍展现出巨大潜力,有望为老年痴呆症的早期诊断和防治工作带来新突破。
2 引言老年痴呆症作为一种随着全球人口老龄化趋势日益严峻而愈发普遍的神经退行性疾病,已成为全球主要的致残和致死原因之一。据统计,全球约有5500万人受到痴呆症的影响,其中最常见的类型包括阿尔茨海默病$^{\mathrm{[1]}}$(AD)、血管性痴呆、路易体痴呆(LBD)和额颞叶痴呆(FTD)。这类疾病不仅给患者本人的生活质量带来严重影响,也给家庭和社会带来了沉重的负担。然而,由于早期阶段的准确诊断方法匮乏,许多患者在症状明显时才得以确诊,从而错过了早期干预和治疗的最佳时机。
在老年痴呆症的复杂病程中,其发病过程呈现为一个高度渐进、持续恶化的动态演变 ...
论文AFT代码复现
1 AFT-simple123456789101112131415161718class AFT_Simple(nn.Module): def __init__(self, dim, hidden_dim=64, **kwargs): super().__init__() self.w_q = nn.Linear(dim, hidden_dim) self.w_k = nn.Linear(dim, hidden_dim) self.w_v = nn.Linear(dim, hidden_dim) self.out = nn.Linear(hidden_dim, dim) def forward(self, x): B, H, W, C = x.shape x = x.reshape(B, -1, C) q = self.w_q(x) k = self.w_k(x) v = self.w_v(x) y = torch.sig ...
论文精读1:An Attention Free Transformer
1 Abstract我们介绍了无注意力transformer(AFT),这是Transformer的有效变体,消除了对点积自注意力的需要。在AFT层中,键和值首先与一组学习到的位置偏置组合在一起,其结果以element-wise的方式与查询相乘。
这个新操作的内存复杂度与上下文大小和特征维度都是线性的,这使得它兼容于大的输入和模型大小。我们还介绍了AFT-local和AFT-conv两种模型变体,它们在保持全局连通性的同时利用了局域性和空间权重共享的思想。
我们在两个自回归建模任务(CIFAR10和Enwik8)以及图像识别任务(ImageNet-1K分类)上进行了广泛的实验。实验表明,AFT在所有基准测试中都表现出具有竞争力的性能,同时提供了出色的效率。
2 Introduction以Transformers为代表的自注意机制推动了各种机器学习问题的发展,包括语言理解和计算机视觉应用。与卷积神经网络(cnn)或循环神经网络(rnn)等经典模型架构不同,Transformer可以在序列中的每对元素之间进行直接交互,这使得它们在捕获长期依赖关系方面特别强大。
然而,Transforme ...