- 博客(64)
- 收藏
- 关注
原创 攻防世界—IgniteMe
中间的value先经过大小写转换后在经过 Str2[i] = byte_4420B0[i] ^ sub_4013C0(v7[i]);后与str2:“GONDPHyGjPEKruv{{pj]X@rF"比较如果为真则为flag。四处判断,长度,前面的value:EIS{和后面的value:} 以及中间的value。
2025-01-12 00:15:11
259
原创 [护网杯 2018]easy_tornado
这里有一个hint点进去看看,他说md5(cookie_secret+md5(filename)),所以我们需要获得cookie_secret的value。输入{{handler.settings}} (settings 属性是一个字典,它包含了Tornado应用的全局配置信息)根据题目tornado,它可能是tornado的SSTI。这里吧filehash改为NULL.是tornado的SSTI。拿到cookie_secret。
2024-11-27 23:54:39
307
原创 [NewStarCTF 2023 公开赛道]逃1
我们只需要把上面的红色部分过滤掉就可以了,而过滤则通过waf来逃逸掉,waf可以把bad变成good,每一个bad就可以过滤一个char,绿色部分就是我们要过滤的数量为27,所以需要27个bad.这段代码分为三部分:1.war函数,2.GetFlag类,3.GetFlag类对象的定义,waf过滤以及反序列化 .很经典的的一道题,键值对逃逸,改变cmd的value,去获取flag.让我们先来看一下未经过waf过滤后的value.此时反序列化时,红色部分就会被过滤掉.开始构造payload。
2024-11-04 13:26:44
742
原创 [MRCTF2020]PYWebsite1
定义:X-Forwarded-For是一个HTTP请求头字段,用于识别通过HTTP代理或负载均衡方式连接到Web服务器的客户端最原始的IP地址。如果输入的密钥是对的那么我们就直接跳转到flag.php页面。那么我们直接访问😎,他不带我们去我们自己去.获得flag,游戏结束~
2024-11-02 11:40:48
514
原创 [HarekazeCTF2019]encode_and_encode1
所以我们需要绕过两个过滤,一个是最开始的 黑名单,也就是is_valid这个函数,然后就是$content = preg_replace('/HarekazeCTF\{.+\}/i', 'HarekazeCTF{}',这个函数加工了。而绕过 preg_replace()这个函数就更简单了,直接用伪协议php://filter/convert.base64-encode/resourc=/flag,使/flag的内容被 filter 处理,最终通过 base64 编码的形式返回.
2024-10-30 19:09:39
544
原创 [Zer0pts2020]Can you guess it?1
而basename($SERVER["PHP_SELF"]) config.php的实现就用上面的basename漏洞来实现。一个正则表达式,一个highlight_file(basename($SERVER["PHP_SELF"])).书接上回,我们可以通过 highlight_file(config.php)来读取flag.basename漏洞,basename可以匹配到可见字符,但是无法匹配不可见字符。所以我们在后面+点东西就可以绕过了,而+的东西就是不可见字符.点击Source,去看一下.
2024-10-30 13:48:17
476
原创 [网鼎杯 2020 朱雀组]Nmap1
知识点:escapeshellarg和escapeshellcmd函数的绕过.nmap使用方法.进入页面是一个NMAP工具的使用页面知识点:Nmap(Network Mapper)是一款功能强大的网络扫描工具,它能够帮助用户发现网络上的设备、开放的端口以及运行的服务。-sU-T0-T5这里试一下多条命令执行.;被转义了.那么看下页面源代码看看.他这里有提示:那么我们可以通过以下知识点写入webshell,或将flag读入指定文件在读取指定文件内容即可:从文件中读取IP地址列表进行扫描。
2024-10-10 00:21:16
1395
原创 数论基础持续更新中~
如果整数 a , b , c 之间存在关系 a = b · c 且 b ≠0,则称 b 整除 a 或者 a 能被 b 整除,且 b 是 a 的因子或除数, a 是 b 的倍数,记为 b | a。可以理解为 a = b · c 且 b = a · c 这里的 a b 可以判断出是相同的,即也是相同的 故 a 和 b 应该是相反数 有 a = 士 b。1、设 a , b , c∈Z ,如果 c l a 且 c | b ,则称 c 是 a 与 b 的公因子或公约数。可以理解为 a = a · 1。
2024-10-09 17:44:59
545
原创 Linux基础入门 --17 DAY(软件包管理)
ABI即Application Binary Interfacewindows与Linux不兼容库级别的虚拟化:Linux:WINE。
2024-10-09 17:30:09
582
原创 Linux基础入门 --16 DAY(压缩与打包)
格式: 常用选项: uncompress file.Z 解压缩 zcat file.Z 不显示解压缩的前提下查看文件文本内容 示例: 格式: 常用选项: 范例: 示例: 格式: 常用选项: 示例: 注意:预览使用bzcat 格式: 常用选项: 范例: 注意:预览使用xzcat
2024-10-08 19:30:39
548
原创 Linux基础入门 --15 DAY(文件查找工具使用)
locate查询系统上的预建的文件索引数据库/var/lib/mlocate/mlocate.db 索引的构建实在系统较为空闲时自动进行(周期任务),执行updatedb可以更新数据库 索引构建需要遍历整个根文件系统,很耗费资源 工作特点: 1.查找速度快 2.模糊查找 3.非实时查找 4.搜索的是文件的全路径,不仅仅是文件全名 格式: 常用选项: -i 不区分大小写搜
2024-10-04 20:40:21
831
原创 欧几里得算法--(密码学基础)
而我们要证明的是gcd(6,16)=gcd(6,16 mod 6)=gcd(6,4) 也就是证明,gcd(a,b)=gcd(b,a mod b),由上图我们可知无论最有可能的最大公约数如何变化(上图为6,3,2),最终解释权始终在4的手上,因为无论最有可能的最大公约数如何变化他都是6个公约数,6和16中的6始终可以mod尽,关键在于4能不能和那个公约数mod尽,所以以此类推可以证明:gcd(a,b)=gcd(b,a mod b),以及一定是最大公约数.第二个问题:问什么求出来的就一定是最大的公约数呢?
2024-10-03 15:46:47
540
原创 Linux基础入门 --14 DAY(SHELL脚本编程基础)
面试题:为什么x和y的值为空,i和j却有value呢?echo x=$x;echo y=$yx=y=1 2i=1 j=2解答:管道两边分别为两个独立的子进程解决方案:echo x=$x;echo y=$y;x=abcy=def。
2024-10-02 01:14:14
385
原创 特殊的 BASE64 1
我们这里可以发现有一个rightflag:mTyqm7wjODkrNLcWl0eqO8K8gc1BPk1GNLgUpI==还有一个base64Encode(&result);,用来进行base64编码,base64编码表估计就在里面呢.这个一看题目就是base64编码表被改了.得到flag,游戏结束~载入IDA(64bit)找到了,开始构造exp。
2024-10-01 07:00:00
601
原创 [FlareOn3]Challenge11
意思是我们输入的value的变量赋值给 NumberOfBytesWritten,同时NumberOfBytesWritten又经过sub_401260()函数的一系列操作,的到Str1的value,并且和Str2,进行比较如何相同则返回Correct.每次取三个字符,并将其按照每6个bit为一位的方法,进行编码转化,转换的内容是通过byte_413000的数据进行转换的,而最后一个for循环则是判断是否4个为一组的,如果不是则在后面加上等于号.在补零后形成的8位字节中,实际使用的只有低6位。
2024-10-01 06:00:00
510
原创 Linux基础入门 --13 DAY(SHELL脚本编程基础)
1.shell支持算数运算,但只支持整数,不支持浮点数2.bash中的算数运算符% 取模** 乘方。
2024-09-30 17:15:48
931
原创 Linux基础入门 --12 DAY(SHELL脚本编程基础)
内置变量 : 如 PS1 , PATH ,HISTSIZE 用户自定义变量 不同变量存放数据不同,决定了以下 1.数据存储方式 2.参与的运算 3.表示的数据范围 1.字符 2.数值:整型,浮点型,bash不支持浮点数 变量的生效范围等标准划分变量类型 1.普通变量:生效范围当前shell进程,对当前shell之外的其它shell进程,包括当前shell进程的shell子进程均无效
2024-09-28 23:33:39
1204
原创 [NewStarCTF 2023 公开赛道]Begin of PHP1
LEVEL5: 哈哈又是数组绕过,这里要输入的POST内容不能是字母和数字,所以我们可以用数组,当然也可以不用只要输入的value为真且不是正则表达是匹配到的范围就可以了,flag5=. ,或者flag5[]=love。LEVEL1: 因为hash函数无法解析数组会返回false,直接用数组绕过key1[]=1&key2[]=2。LEVEL4: 没错继续用数组绕过,is_numeric()无法解析数组会返回false,而且数组大于2023.至于为什么大于2023,我们来做个小实验.key5[]=5。
2024-09-26 18:13:44
715
原创 [极客大挑战 2019]RCE ME1
之前我们提到了,他禁用了很多函数方法,我们可以通过下面蚁剑的绕过disable_functions的插件进行绕过.看来禁用的还是比较多的一会可能需要使用这些被使用了disable_function()的函数了.意思就是我们传入的code的value要到达eval()函数,我们需要绕过两个过滤。首先是长度不能大于40,之后便是我们传入的内容不能是大小写字母以及0-9的数字.之后构造webshell,由于php版本的问题呢,我们不能直接构造。绕过方法呢可以使用取反绕过,以及异或绕过.,我们需要构造构造成。
2024-09-26 07:45:40
874
原创 [WMCTF2020]Make PHP Great Again 2.01
又是php代码审计,开始吧.这不用审吧,啊喂.意思就是我们要利用require_once()函数和传入的file的value去读取flag的内容.,貌似呢require_once()已经被用过一次了,直接读取还不行,看一下下面的知识点.
2024-09-22 19:58:18
915
原创 [SUCTF2019]SignIn1
无壳,载入IDA.搜索找到main函数开始分析.这段代码是一个使用GMP(GNU Multiple Precision Arithmetic Library)库实现的简单加密挑战程序。它模拟了一个“签到”流程,要求用户输入一个标志(flag),然后验证这个标志是否符合特定的加密条件。
2024-09-13 11:56:46
1559
原创 [羊城杯 2020]Blackcat1
我们无法知道它(第一次加密)的环境变量的value,但由于我们知道当数组进行sha256加密时,返回总为NULL,我们就可以控制$clandestine(第二次加密)这个key的value=NULL从而控制hh的value.意思是我们要保证Black-Cat-Sheriff 和 One-ear 两个参数的POST值存在的同时Black-Cat-Sheriff的值要等于One-ear经过sha256加密后的值($hh),最后通过exec这个危险函数来获取flag.是为了不被前面的nc影响.
2024-09-12 17:13:09
602
原创 [BSidesCF 2019]Kookie1
进入页面,他告诉我Login as admin :作为admin登录,We found the account cookie / monster。而且这个题目看着和cookie就有关系,感觉是cookie伪造.:我们发现了账户cookie/monster.那就直接去伪造cookie.获取flag,游戏结束~
2024-09-11 21:36:26
240
原创 [FireshellCTF2020]Caas1
可以试一下预处理报错,将头文件改成 "\flag" 尝试包含一下.发现下载了一个文件,打开后感觉没啥用,应该是编译好后给你的文件.进入页面发现是让我么输入code然后他去处理,那就输一下试试.它报错了,可以看出这是个C语言的报错,那么传入一下C语言代码.2.#include " " 预处理报错。拿到flag,游戏结束~
2024-09-11 18:56:18
340
原创 Linux基础入门 --10 DAY
格式:常见选项:-E:显示行结束符-A:显示所有控制符-n:对显示出的每一行进行编号-b:对非空行进行编号-s:压缩连续的空行成一行范例:3 $
2024-09-09 11:47:34
1356
原创 [N1CTF 2018]eating_cms1
是个parse_url漏洞利用,这段代码想让我们输入的url地址问好后过滤了"flag","manage","ffffllllaaaaggg",所以我们可以推测存在“flag","manage","ffffllllaaaaggg"这个函数通常很安全,但如果不正确地使用或当输入的 URL 格式异常时,可能会引发一些潜在的问题或误解,但这并不直接等同于传统意义上的“漏洞”。实际上,它仅仅是一个解析工具,并不提供安全验证或清理功能。可能无法正确解析这些部分,尤其是在路径(path)或查询字符串(query)中。
2024-09-08 18:34:16
1007
原创 Linux基础入门 --9 DAY
vi是Unix及类Unix系统(如Linux)下最基本的文本编辑器,全称为“visual interface”,即视觉界面。尽管其名称中包含“visual”,但vi编辑器实际上工作在字符模式下,并不提供图形界面。vi编辑器以其强大的功能和灵活性著称,是Linux系统中不可或缺的工具之一。命令模式(Command Mode):启动vi后默认进入此模式。在此模式下,用户可以通过键盘输入各种命令来控制光标的移动、文本的复制、粘贴、删除等操作。插入模式(Insert Mode)
2024-09-08 11:57:47
1154
原创 Linux基础入门 --8 DAY
chmod命令是Linux和Unix系统中用于改变文件或目录权限的强大工具。通过数字模式和字母模式,用户可以灵活地设置文件或目录的访问权限,以满足不同的安全和管理需求。在使用时,需要注意权限设置的合理性和安全性,以避免潜在的风险。定义:mask是ACL中的一个有效权限掩码,表示允许任意类型用户的更大权限。它用于在权限完全从基础权限集中得到计算后,确定文件或目录的最终权限。作用权限控制核心:mask是ACL控制权限的核心部分之一,通过限制基础ACL权限来控制权限授予。权限限制。
2024-09-07 15:03:08
696
原创 [羊城杯 2020]Easyphp21
这里呢是要我们绕过一个正则匹配,同时要通过下面的exec函数去获取flag值.这里有一个README文件那就读一下发现是GWHT账户加密过的密码.由于呢正则表达式过滤了php,所以我们可以用
2024-09-06 20:44:14
1100
原创 Linux基础入门 --7 DAY
Authentication:认证,检验用户身份Authorization:授权,不同用户设置不同权限Accounting|Audition:审计当用户登陆时,系统会自动分配令牌token,包括用户标识和组成员等信息。
2024-09-06 13:06:08
1298
原创 Linux基础入门 --6 DAY
程序=指令+数据输入数据:input输出数据:output打开的文件都有一个fd:file descriptor (文件描述符)Linux给程序提供了三种I/O设备:1. 标准输入(STDIN) 0 默认接受来自终端的输入2. 标准输出(STDOUT)1 默认输出到终端窗口3. 标准错误(STDERR)2 默认输出到终端窗口范例:total 02940total 0。
2024-09-05 16:26:51
653
原创 Linux基础入门 --5 DAY
定义:inode是“index node”的缩写,中文译名为索引节点或i节点。它是文件系统中的一种数据结构,用于存储文件的元数据(metadata),即除了文件名以外的所有文件信息。作用:inode节点主要用于存放文件和目录的基本信息,如文件的字节数、文件拥有者的User ID、文件的Group ID、文件的时间戳(ctime、mtime、atime)、链接数(有多少文件名指向这个inode)以及文件数据块(block)的位置等。这些信息使得系统能够高效地管理和访问文件。硬链接。
2024-09-04 13:57:49
434
原创 [SUCTF 2018]annonymous1
当然还没有结束 ,尝试了几次%d=1后突然就失效了,然后就尝试%d=2又成功了,之后经过我多次的尝试当%d递增到9后他又回到了%d=1,而且每次%d的变动都是经过了几次的重复才会递增,格式为:%00lambda_%d ,而%d则是一个计数器会递增,用来记录create_function()这个函数执行了多少次.这说明这个服务器可能是一个多进程模式,每次请求都会有一个新的php环境(有限),所以%d会递增(存在规律).所以我们可以通过调用那个匿名函数(%d=1)来实现cat flag.php的操作.
2024-09-03 19:14:34
628
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人