部分CVE复现Web(1)
Apache HTTP Server 路径穿越漏洞CVE-2021-41773 首先,先来看一下这个漏洞的官方描述:
CVE-2021-41773 是在 Apache HTTP Server 2.4.49 中对路径规范化所做的更改中发现了一个缺陷。攻击者可以使用路径遍历攻击将 URL 映射到预期文档根目录之外的文件,如果文档根目录之外的文件不受“要求全部拒绝”的保护,则这些请求可能会成功,如果还为这些别名路径启用了 CGI 脚本,则可以允许远程代码执行。
漏洞条件: 配置目录遍历,并且开启cgi mode 2.Apache HTTPd版本为2.4.49/2.4.50 3.存在cgi-bin和icons文件夹
穿越的目录允许被访问,比如配置了Require all granted。(默认情况下是不允许的:Require all denied)
注意:这里的/icons/必须是一个存在且可访问的目录
漏洞复现: 首先,需要在虚拟机里下载一个docker,可以通过
1apt install docker.io docker-compose
来安 ...
数据结构-3、栈、队列和数组
3.1、栈3.1.1、栈的基本概念:1、栈的定义: 栈是只允许在一端进行插入或删除操作的线性表。首先,栈是一种线性表,但限定这种线性表只能在某一端进行插入和删除操作,如下图:
栈顶(Top)。线性表允许进行插入删除的那一端。
栈底(Bottom)。固定的,不允许进行插入和删除的另一端。
空栈。不包含任何元素的空表。
假设某个栈 $S=(a_1,a_2,a_3,a_4,a_5)$,如上图所示,则 $a_1$为栈底元素,$a_5$为栈顶元素。由于栈只能在栈顶进行插入和删除操作,进栈次序依次为 $a_1,a_2,a_3,a_4,a_5$,而出栈次序则与入栈次序相反。由此可见,栈的操作特性可以明显地概括为后进先出(LIFO)。
栈的数学性质:n 个不同元素进栈,出栈元素不同排列的个数为 $\frac{1}{n+1}C^n_2n$ 。上述公式称为卡特兰数,可采用数学归纳法证明。
2、栈的基本操作: 栈的基本操作:
123456InitStack(&S) //初始化一个空栈。StackEmpty(S) //判断一个栈是否为空,若栈 S 为空则返回 t ...
hexo部署服务器
背景:笨办法: 我在经过无数次的尝试之后,发现无论我怎么操作,都存在一个问题,就是git无法成功推送到服务器,这个就很难办了,所以,个人感觉只有使用一个本办法才能操作了,如下:
首先,老办法,将我们的hexo推送到GitHub上,之后等一会儿,能看了之后再说,
然后,我们在目标服务器上运行以下代码(前提,创建一个/Temp目录):
1234567cd /Temp/blogrm -rf *rm -rf /var/www/html/*git clone https://github.com/g01den1/g01den1.github.io.gitmv ./g01den1.github.io/* /var/www/html/cd /Temp/blogrm -rf *
最后,似乎只能通过这样的本办法来进行推送了,别的办法就没了,不过可能只是因为我太菜了,所以才导致了这个的问题,之后再解决吧。
数据结构笔记-2、线性表
2.1、线性表的定义和基本操作如有侵权请联系删除。
2.1.1、线性表的定义: 线性表是具有相同数据类型的 n (n>=0) 个数据元素的有限序列,其中 n 为表长,当 n = 0 时线性表是一个空表。若用 L 命名线性表,则其一般表示为:$$L=(a_1,a_2,a_3,…,a_i,x_{i+1},…,a_n)$$式中, $a_1$ 是唯一的“第一个元素”,又称表头元素;$a_n$ 是唯一的“最后一个元素”,又称表尾元素。除第一个元素外,每个元素有且仅有一个直接前驱。除最后一个元素外,每个元素有且仅有一个直接后驱。
由此,线性表的特点是:
表中元素的个数有限。
表中元素具有逻辑上的顺序性,表中数据有其先后次序。
表中元素都是数据元素,每个元素都是单个数据。
表中元素的数据类型都相同,这意味着每个元素都占有相同大小的存储空间。
表中元素具有抽象性,即仅讨论元素间的逻辑关系,而不考虑元素究竟表示什么内容。
2.1.2、线性表的操作: 线性表的主要操作如下:
InitList(&L) :初始化表。构造一个空的线性表。
Le ...
随机二次元图api相关
爬虫获取所有图片:背景: 最近做一些Web题,发现了些网页的背景会随机出现,每一次刷新都会出现不一样的图,感觉有点意思,试着研究下,当然,肯定不是研究咋弄的这个,而是,api里的图怎么爬取:
首先: 接口文档如下:
[LoliApi]: https://docs.loliapi.com/api-shi-yong-wen-dang/sui-ji-er-ci-yuan-tu-pian “LoliApi”
之后直接上源码:
1234567891011121314151617181920212223242526272829303132333435363738import requestsimport osdef pe(): for i in range(1,3400): url = "https://img.loliapi.cn/i/pe/img{}.webp".format(str(i)) print(url) resp = requests.get(url) if resp.sta ...
【2024】LitCTF
Misc:1、涐贪恋和伱、甾―⑺dé毎兮毎秒: 题目描述:laosebi,无脑LSB隐写,全取最低位的LSB隐写,拿到flag。有大佬直接zsteg秒了,在这里提一下
2、你说得对,但__ 下载下来是一个图片,通过foremost分离图片,得到四张图片,每一张都是一个二维码的一部分,拼出来扫一下就行了,完事儿:
1LitCTF{Genshin_St@rt!!}
3、原铁,启动! 好离谱的题,不过题目的提示很明显了,我没发现,我的问题,原铁,再加上题目描述,推测应该是原神和崩铁的通用字体,直接上网站里对照这来,https://genshin.pro-ivan.com/genshinfonttranslator/demo/,最后发现前半部分是原神,后半部分是崩铁的字体:
1LitCTF{good_gamer}
4、盯帧珍珠 题目给了一张jpg图片,放到010里面发现文件头为gif格式的,修改后缀后使用工具分离得到一堆图片,在其中可以发现组成flag的部分(我的010出了问题,破解无效了,这里就不放照片了),然后是一个gif中间嵌 ...
【2023】LitCTF
LitCTF2023(复现)Web:1、我Flag呢? ctrl+u 读取源码,在最后发现了flag:
1<!--flag is here flag=NSSCTF{3d5218b9-4e24-4d61-9c15-68f8789e8c48} -->
2、PHP是世界上最好的语言!!
右边那个框下面是 RUN CODE ,结合题目是PHP,推测为RCE,先输入echo 123;看看会发生啥:发现左边输出内容出现了123,那么,直接system(“cat /flag”);成功拿到flag:
1flag=NSSCTF{b26d3851-52f5-4a80-9e69-6417baf49d68}
3、导弹迷踪 js游戏题,先看源码,这里看game.js:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 ...
JavaWeb基础(一)-IO操作
Java I/O工作机制:注:简要笔记,示例代码可能较少,甚至没有。
1、Java 的 I/O 类库的基本架构。 Java 的 I/O 操作类在包 java.io 下,大概有将近80个类,这些类大概可以分为如下四组。
基于字节操作的 I/O 接口:InputStream 和 OutputStream 。
基于字符操作的 I/O 接口:Writer 和 Reader 。
基于磁盘操作的 I/O 接口:File。
基于网络操作的 I/O 接口:Socket。
1.1、基于字节的 I/O 操作接口 基于字节的 I/O 操作接口输入和输出分别是:InputStream 和 OutputStream 。InputStream 的类层次如下:
输入流根据数据类型和操作方式又被划分为若干个子类,每个子类分别处理不同操作类型。OutputStream 的类层次结构也类似,如下图:
1.2、基于字符的 I/O 操作接口 下图是写字符的 I/O 操作接口涉及的类,Writer 类提供了 ...
三、Servlet基础
注:因为我并不完全是为了从0开始Java开发,因此,我这里先暂时跳过第二章服务器环境相关的内容,直接开始第三章的内容。
3.1、Servlet 的基本结构: 下面的代码给出了一个基本的 Servlet ,它处理 GET 请求。GET 请求是浏览器请求的常见类型,用来请求 Web 页面。用户在地址栏中输入 URL 、点击 Web 页面内的连接、或提交没有指定 METHOD 或 METHOD=”GET” 的 HTML 表单时,浏览器都会生成这个请求。 Servlet 还可以容易地处理 POST 请求(提交 METHOD=”POST” 的 HTML 表单时,会生成 POST 请求)。HTML 表单的使用细节以及 GET 和 POST 之间的区别。
123456789101112131415161718192021222324package com.firstweb.study01;import jakarta.servlet.ServletException;import jakarta.servlet.http.HttpServlet;import jakarta.s ...
一、Servlet和JSP技术概述
注:该系列笔记是用于我在 《Servlet 与 JSP 核心编程》这本书中的学习笔记,无其他意思,侵权请联系2082045221@qq.com删除。
第一章内容较少,所以暂时有用的笔记也不多。
1.1、Servlet 的功用: Servlet 是运行在 Web 服务器或应用服务器上的 Java 程序,它是一个,负责连接来自 Web 浏览器或其他 HTTP 客户程序的请求和 HTTP 服务器上的数据库或应用程序。Servlet 的工作是执行下面的任务,如图 1.1 所示:
读取客户发送的显式数据。
最终用户一般在网页的 HTML 表单中输入的这些数据。然而,数据还有可能来自于 Applet 或定制的 HTTP 客户程序。
读取由浏览器发送的隐式请求数据。
图 1.1 中显示了一条从客户端到 Web 服务器(Servlet 和 JSP 所在的层)的单箭头,但实际上从客户端传送到 Web 服务器的数据有两种,它们分别为用 ...