pwn学习笔记(0)-事后补充
Pwn环境部署:1、背景: 首先是在最开始的时候装环境此次碰壁,搞得没心思写这篇博客,其次,又因为虚拟机本身的问题,导致我对虚拟机有很强的不满,所以我最开始没有写这篇博客,但是,转念一想,为什么我必须得执着于 虚拟机呢?不是同样都是Linux吗,为啥我不直接采用 WSL 来部署 Pwn 环境呢?所以,这里我选择了重装了下 Pwn 环境,不过,因为我装好很大一部分之后才想起来记录博客,所以我只会把前面的内容简单记录一下,不进行二次实操了。
WSL的安装我就不详细进行说明了,这个挺无脑的。
2、基础工具:<1>Vim: 我想,大部分的 Ubuntu 似乎都已经装好了,不过似乎听说有的没有,不过贴一个源码过来:
1sudo apt install vim
<2>git: 老样子,一把梭
1sudo apt install git
<3>GCC:1sudo apt install gcc
<4>python3-pip:1sudo apt install python3-pip
<5>qemu: QEMU是 ...
反弹shell
反弹shell:简介; 反弹shell,就是攻击机监听在某个TCP/UDP端口为服务端,目标机主动发起请求到攻击机监听的端口,并将其命令行的输入输出转到攻击机。
正向连接: 假设我们攻击了一台机器,打开了该机器的一个端口,攻击者在自己的机器去连接目标机器(目标ip:目标机器端口),这是比较常规的形式,我们叫做正向连接。远程桌面、web服务、ssh、telnet等等都是正向连接。
反向连接: 反弹shell通常适用于如下几种情况:
目标机因防火墙受限,目标机器只能发送请求,不能接收请求。
目标机端口被占用。
目标机位于局域网,或IP会动态变化,攻击机无法直接连接。
对于病毒,木马,受害者什么时候能中招,对方的网络环境是什么样的,什么时候开关机,都是未知的。
对于以上几种情况,我们是无法利用正向连接的,要用反向连接。
反向连接就是攻击者指定服务端,受害者主机主动连接攻击者的服务端程序,即为反向连接。
利用netcat反弹shell: 目前,默认的各个linux发行版本已经自带了netcat工具包,但是可能由于处于安全考虑原生版本的netcat带有可 ...
部分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 类提供了 ...