自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 路由与交换实训

配置如下网络拓扑:网络拓扑具体配置要求如下:内网部分:1、左边为公司企业内网,内网当中存在四个vlan ,分别为vlan10 vlan20 vlan30 vlan40,vlan10为财务部,vlan20为业务部,vlan30为技术部 vlan40为服务器2、pc0和pc1为财务部,pc2和pc3为业务部,server0为内网服务器。财务部的网段为192.168.10.0/24业务部的网段为192.168.20.0/24技术部的网段为192.168.30.0/24。

2024-06-23 22:50:01 800

原创 [极客大挑战 2019]RCE ME1

先空着ovo。

2024-06-23 22:44:17 72

原创 [ZJCTF 2019]NiZhuanSiWei1

嘶~好熟悉,好像前面我已经写了一篇这样的文章,前两层的绕过方法都是一样的。输出对象将对象转化为字符串形式,或者将一个“对象”与“字符串”进行拼接时,会调用。那么将这段通过password传入,于是最后的payload变成了。按照这篇文章就可以拿下前两层了,得到一层base64编码。看到源码只有一个__toString()魔术方法。构造也很好构造,在本地构造运行。打开题目看到如下图的代码。

2024-06-22 23:02:08 245 1

原创 [GXYCTF2019]禁止套娃1

这部分代码的作用是对传入的exp参数进行正则匹配和替换操作,以确保该参数只包含函数调用,并且这些函数调用的结果最终等于一个分号(;默认情况下,如果没有先前调用过next()、prev()、reset()等函数,current()返回数组的第一个元素。正则表达式的作用是匹配像func1(func2())这样的嵌套函数调用。

2024-06-22 22:41:02 809 1

原创 [BJDCTF2020]ZJCTF,不过如此1

简单分析一下这段代码,代码通过GET方法来传入text和file两个参数,并且传入的text参数通过file_get_contents函数以只读的方式打开,而且当它强等于"I have a dream"这个字符串是,才能够去输出并且去执行下面的那个if判断。也就是这段代码会遍历传入的GET参数,将GET传入的变量名给了$re,把变量名的值给了$str,那么这样在传入paylaod的时候preg_replace会变成。我们将返回的base64解码就是next.php的源码了,源码如下。

2024-06-17 22:56:29 998

原创 [BSidesCF 2020]Had a bad day1

可以去看一下这篇文章。也就是说当我们通过category去传入文件名的时候,category=woofers/flag的时候,index.php会在参数后面直接连接.php这个后缀,因此$file=woofers/flag.php,而在php中进行文件包含的时候会把woofers/给忽略掉,找到这个有意义的flag.php,从而到达利用php伪协议去读取flag.php的目的。可以看到页面是返回来了一串base64编码,解码就可以得到flag.php的源码,如下。通过解码我们就可以看到源码中的flag了。

2024-06-16 23:16:21 825

原创 [BJDCTF2020]The mystery of ip1

然后在尝试a{*comment*}b和{{7*7}},如果a{*comment*}b返回ab的话就是smarty模板,尝试(这里{**}是注释符的意思,所以会直接被省略)利用{if}标签来进行注入,在XFF处输入{if phpinfo()}{/if},可以看到成功执行。看一下flag页面返回了咱们的ip,那么接下来burpsuite抓包,构造XFF然后进行判断。发现存在ssti注入漏洞,然后进行判断是什么模板,上张图。发现在根目录存在flag,cat /flag得到flag。

2024-06-16 22:23:21 144

原创 [BJDCTF2020]Cookie is so stable1

如果是Jinja2的话输出应该是输出22,为什么输出22呢,'2'在python中被看作是字符串,在python中一个字符串乘上一个数字,就是将这个字符串连续输出,看下面演示。这里是Twig1.x版本(但是怎么确定是1.x版本的我没有弄明白,因此下面的payload也只适用于Twig1.x版本)最终我们的payload为。提示看一下cookie,我们在flag.php页面抓包可以看到cookie中是存在一个user参数的。确定是ssti注入,那么接下来就是确定是哪个模板了,上图。打开题目,看到如下页面。

2024-06-13 07:36:50 330

原创 [RoarCTF 2019]Easy Java1

所以我们可以得到文件目录也就是访问filename=WEB-INF/classes/com/wm/ctf/FlagController.class然后我们就可以得到源码,记事本打开,发现一串base64。这里GET方法来下载是不行的,既然给出了help.docx这个提示,我猜测题目作者应该是想让换一种方法来下载。可以看到com.wm.ctf.FlagController被包裹,在前面介绍的WEB-INF知识点中介绍了。文件路径错误:指定的文件路径不正确,或者文件名拼写错误。

2024-06-08 16:47:45 606

原创 [BUUCTF 2018]Online Tool1

将给字符串增加一个单引号并且能引用或者转义任何已经存在的单引号,这样以确保能够直接将一个字符串传入 shell 函数,并且还是确保安全的。接下来是通过get方法传入host参数,经过escapeshellarg和escapeshellcmd两个函数过滤后,拼接到nmap命令后,通过system系统命令来执行命令。发现在nmap命令中 有一个参数-oG可以实现将命令和结果写到文件这个命令就是我们的输入可控!通过上面的操作逃过了单引号,但escapeshellcmd会对这些特殊符号前面加上\来转义…

2024-06-08 16:46:58 599

原创 [护网杯 2018]easy_tornado

在tornado模板中,存在一些可以访问的快速对象,这里用到的是handler.settings,handler 指向RequestHandler,而RequestHandler.settings又指向self.application.settings,所以handler.settings就指向RequestHandler.application.settings了,这里面就是我们的一些环境变量。和flask类似,tornado中的模板也可以使用for、if、while等控制语句,并且同样使用。

2024-06-08 16:46:20 439

原创 [SUCTF 2019]CheckIn1

利用上传的一句话进行GET传参cmd=var_dump(scandir('/'));看到upload页面猜测文件上传,随便传了一个txt,给提示not image!读取一个图像的第一个字节并检查其签名。用蚁剑连不上(orz)

2024-06-08 16:45:19 109

原创 [RoarCTF 2019]Easy Calc1

file_get_contents()函数(或者是show_source函数)可以将文件的内容读入到一个字符串中,利用file_get_contents()函数来读取文件,构造payload。var_dump可以用来输出信息,而scandir可以用来获取目录文件,由于'/'被过滤了,可以用chr(47)来代替'/',所以通过get传参。去查看一下,发现很多被禁用的函数(注意在进行传参时,num前面需要存在一个space或者是用%20,以达到执行phpinfo()命令的效果)然后通过num去get传参,

2024-06-08 16:44:33 338

原创 极客大挑战2019Upload 1:

发现返回 Not Image所以我们将Content-Type一栏改为image/jpeg,再继续发送发现返回Not php所以我们将filename一项后面的文件后缀由.php改为.phtml继续发送返回。尝试将一句话木马<?> 改为 <%php system($_GET['cmd']);本题首先尝试的一句话木马为<?上传成功但是查看发现一句话木马并未被成功执行。

2024-06-08 16:42:44 274

原创 第十四届蓝桥杯大赛软件赛国赛Python大学B组

任意两个相同的数异或的值为0,偶数个相同的数异或的值也是0;遍历一遍如果结果为0那么所有的字符偶数,否则则是奇数(实在是优雅)两个集合的权值差最小的时候,两个集合的权值乘积最大,利用背包去划分两组集合,从而得到权值最大的情况。(参考佬的ac代码)pypy3能过90%样例,有一个运行超时。

2024-05-12 16:39:23 333 1

原创 刷题笔记orz

解方程。。。。

2024-04-08 22:11:31 248

原创 NKCTF 2024 web复现

好像没啥有用的(在我眼里),接着往上一级目录去翻找,在咱们得不懈努力下发现了一个亮眼的东西 (此时的执行代码为system('ls ../../../../');再来个咱最拿手的cat命令去读取flag, system('cat ../../../../_fffff1@g');)合理猜测username是admin,咱们对password爆破可以得到密码是Admin123。助助兴吧(记得写入命令要先apply再run!由于没有任何提示可以猜测是弱口令,咱们在BP上爆破(你得有个好字典,

2024-03-25 18:43:07 270 1

原创 P1464 Function

其它的情况就返回 $w(a-1,b,c)+w(a-1,b-1,c)+w(a-1,b,c-1)-w(a-1,b-1,c-1)$- 如果 $a<b$ 并且 $b<c$ 就返回$ w(a,b,c-1)+w(a,b-1,c-1)-w(a,b-1,c)$。注意:例如 $w(30,-1,0)$ 又满足条件 $1$ 又满足条件 $2$,请按照最上面的条件来算,答案为 $1$。保证不包括 $-1, -1, -1$ 的输入行数 $T$ 满足 $1 \leq T \leq 10 ^ 5$。### 样例输出 #1。

2024-03-24 18:25:09 216 1

原创 command_execution

一个个目录看一下,看看能不能发现flag,我们在home下发现了flag.txt。试试ping一下127.0.0.1地址 (似乎没啥有用的东西)我们试试管道符连接去看一下根目录(了解一些linux符号的使用。查看flag.txt中的内容,用cat命令去实现。这题主要是看有关linux的系统命令吧。

2024-03-24 16:48:07 147 1

原创 攻防世界 catcat-new

flask_session的伪造需要用到secret_key,而secret_key的值可以通过内存数据获取。在读取内存数据文件/proc/self/mem之前,我们要先读取/proc/self/maps文件获取可读内容的内存映射地址。file=../../../proc/self/maps,将maps文件返回的内容保存到test.txt中,用脚本去得到secret_key。记得要改一下url啊,不然只能像我这个笨比一样等半天(bushi),拿到secret_key之后我们去伪造session。

2024-03-24 16:26:56 687 1

转载 P1106 删数问题

键盘输入一个高精度的正整数 $N$(不超过 $250$ 位),去掉其中任意 $k$ 个数字后剩下的数字按原左右次序将组成一个新的非负整数。编程对给定的 $N$ 和 $k$,寻找一种方案使得剩下的数字组成的新数最小。第二行输入一个正整数 $k$,表示需要删除的数字个数。第一行输入一个高精度的正整数 $n$。输出一个整数,最后剩下的最小数。### 样例输入 #1。### 样例输出 #1。

2024-03-24 10:58:26 30 1

原创 P1434 [SHOI2002] 滑雪

在上面的例子中,一条可行的滑坡为 $24-17-16-1$(从 $24$ 开始,在 $1$ 结束)。当然 $25$-$24$-$23$-$\ldots$-$3$-$2$-$1$ 更长。Michael 想知道在一个区域中最长的滑坡。输入的第一行为表示区域的二维数组的行数 $R$ 和列数 $C$。下面是 $R$ 行,每行有 $C$ 个数,代表高度(两个数字之间用 $1$ 个空格间隔)。对于 $100\%$ 的数据,$1\leq R,C\leq 100$。输出区域中最长滑坡的长度。### 样例输出 #1。

2024-03-11 15:13:04 401

原创 P1049 [NOIP2001 普及组] 装箱问题

对于 $100\%$ 数据,满足 $0

2024-03-10 11:10:25 146 1

原创 P3817 小A的糖果

小 A 每次可以从其中一盒糖果中吃掉一颗,他想知道,要让任意两个相邻的盒子中糖的个数之和都不大于 x,至少得吃掉几颗糖。第二行有 n个用空格隔开的整数,第 i个整数代表第 i 盒糖的糖果个数 ai。输入的第一行是两个用空格隔开的整数,代表糖果盒的个数 n 和给定的参数 x。小 A 有n个糖果盒,第i个盒中有ai颗糖果。输出一行一个整数,代表最少要吃掉的糖果的数量。### 样例输入 #1。### 样例输出 #1。### 样例输入 #2。### 样例输出 #2。### 样例输入 #3。### 样例输出 #3。

2024-03-08 15:07:36 192 1

原创 lqlqlq

容斥定理:1~n中a的倍数有n//a个1~n中是a或者是b的倍数有n//a + n//b - n//(a+b)

2024-02-27 20:44:05 142

原创 lanqiao

输入整数n,然后输入n个人的姓名(字符个数不超过30)和对应的生日(格式:年-月-日,年月日都是整数)。输入n个学生的姓名和对应的生日(格式:年-月-日),输出年龄最小的学生的姓名(假设该学生是唯一的)。年龄最小的学生的姓名。

2024-02-05 11:21:08 224 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除