自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LeetCode热题100-矩阵

但是对于第一行,和第一列要设置一个标志位,为了防止自己这一行(一列)也有。,第一遍用集合记录哪些行,哪些列有。思路一:用 O(m+n)额外空间。第一行和第一列记录该行该列是否有。思路二:用O(1)空间。

2025-02-16 10:41:25 149

原创 LeetCode热题100(普通数组)

【代码】LeetCode热题100(普通数组)

2025-02-13 21:10:31 169

原创 LeetCode热题100-普通数组

定义 f[i] 表示以 nums[i] 结尾的最大子数组和。lambda函数应用。

2025-02-11 19:34:08 124

原创 代码审计2(ctfshow web305-307)

通过dao类的__destruct方法调用log类的close方法,实现文件包含写入shell。访问反序列化的入口文件:/controller/logout.php触发反序列化再蚁剑连接。用户名密码都是admin先登录上去然后蚁剑连接/1.php并右键添加数据连接。在logout.php中有反序列化调用clearCache。dao.php里面有个shell_exec()index.php有反序列化入口。注意这里想到反序列化。

2025-02-10 12:29:09 225

原创 LeetCode热题100(子串)

【代码】LeetCode热题100(子串)

2025-02-09 21:13:39 138

原创 代码审计(ctfshow web301-304)

mysql的特性: 在联合查询并不存在的数据时,联合查询就会构造一个。数据就相当于构造了一个虚拟账户,可以使用这个账户登录。sql文件里有admin用户名,密码也是admin。登录上在dptadd.php注入。304用303的做法也可以。登录进去得到flag。

2025-02-09 10:38:48 524

原创 Leetcode热题100滑动窗口

法二:哈希集合(布尔数组)法一:哈希表(整形数组)

2025-02-08 22:53:32 452

原创 Java篇(ctfshow web279-295)

(这篇是包师傅具体试的每篇的漏洞)

2025-02-05 20:52:17 171

原创 LeetCode热题100-双指针2

pre_max和suf_max分别前后柱子最大值,哪边小就移哪边。相当于左右同时往里逼近,每次算一个坐标内容多少水。1.三数之和(15)

2025-02-04 21:33:37 280

原创 反序列化(ctfshow web277,278)

这里将序列化并base64加密后的结果传入data后点那里的Poll now然后就出来了(才有了bp pro,第一次带外成功之前遇到这种题都跳了)跟上题一样的做法(过滤了os.system,上题做法不影响)没有回显,需要结合bp的collaborator带外。

2025-02-04 19:44:39 177

原创 LeetCode热题100-双指针

python还可以这样交换之前连这都不知道。

2025-02-03 21:45:44 134

原创 反序列化5(ctfshow web274-276)

但是这里无法直接修改,我们可以采用 phar 文件来触发,当读取 phar 文件时,会自动反序列化 manifest 中的字符串,采用 phar 协议来读取即可。这题phar的extension整了半天,最后是找到现在版本的php.ini里面搜phar把前面分号去了然后那俩On要改成Off。filename就是传入的fn,传入?新增对admin判断,我们需要修改admin为 true 才会进入 system。还要结合条件竞争,在phar文件还没有被删除前访问到它,触发反序列化。

2025-02-03 20:53:33 415

原创 反序列化4(ctfshow web268-web273)

这个框架我只能看出来是5.x以后的具体是咋看出来5.7的也不清楚(以后研究清楚了补回来)后两个poc可能会新开一篇专门研究一下,做的时候直接用了也没研究具体咋回事。前面和267很像,但是换了一个poc。

2025-02-02 19:26:40 523

原创 LeetCode热门100题-哈希

手搓代码一直不太行,有了gpt之后感觉更不咋写代码了,好多代码感觉看懂了自己写一点不会,来跟着焯神和达神一起来刷LeetCode熟悉一下python的语法和一些常用算法。刚开始刷一点都不会完全自己写,基本上都是默答案(难绷),慢慢来吧。

2025-02-02 18:54:49 599

原创 反序列化3(ctfshow web263-web267 )

session.serialize_handler 是用来设置 session 序列化引擎的,在 5.5.4 前默认是 php,5.5.4后默认是 php_serialize,在 PHP 反序列化存储的 $_SESSION 数据时如果使用的引擎和序列化时使用的引擎不一样,就会导致数据无法正确第反序列化,也就是 session 反序列化漏洞。message.php页面要求设置Cookie:msg的值,没有要求,随便输入即可。用dirsearch扫一下,发现www.zip文件,访问下载下来是网站源码。

2025-02-01 21:58:36 747

原创 php特性(ctfshow web89-web94)

intval() 不能用于 object 和 array,否则会产生 E_NOTICE 错误并返回 1,intval() 传入非空数组就会返回 1,而 preg_match() 只能处理字符串,当传入的是数组时会直接返回 0。strpos(string,find,start)有三个参数,string是被检查的字符串,find是要被搜索的字符串,start是开始检索的位置,num=010574 //以 0 开头,但不以 0x 或 0X 等开头,它会被解释为八进制。开头不能为0,但是必须要有0。

2025-02-01 21:57:45 362

原创 反序列化2(ctfshow web259-262)

在php7.4.0开始,如果类中同时定义了 __unserialize() 和 __wakeup() 两个魔术方法,则只有 __unserialize() 方法会生效,__wakeup() 方法会被忽略。我们不需要考虑__wakeup,__invoke是类被进行函数调用时启用,也无法利用到,所以我直接看看能不能写入文件。查看有哪些原生类有 __call() 方法,然后尝试使用原生类 SoapClient 来本地访问 flag.php。因为是弱类型比较,像877a等都可以通过,所以我们像下面这样传入。

2025-01-31 20:48:44 826

原创 反序列化(ctfshow web255-web259)

记得get传入的username与password与这里相对应。多了一步判断要求username和password的值不相等。对形如O:7:进行了过滤,我们可以在数字前加上加号绕过。cookie传入下列序列化输出的结果。改cookie推荐一个插件很方便。然后传参getshell。

2025-01-31 11:02:42 511

原创 文件包含2

空格、(、'、)、;、>,这些字符不符合 base64 编码的字符范围都将先被移除,最终剩下的用于解码的字符只有 phpdie 和我们 post 传入的内容。由于 Base64 解码是以 4 个字符为一组进行的,这里移除后只剩下 6 个字符,因此我们随便加两个合法字符补全,让其 base64 解码成功,后面再继续传入经过 base64 编码的 payload,也可以被正常解码。因为我们传入的一句话木马是先经过一遍编码转换的,之后又通过过滤器将其还原。视频下载完直接分离出一张png图片。

2025-01-30 20:56:38 534

原创 文件包含1

前一段打美赛去了没怎么总结这几天总结一下以前做的题复习一下再多刷一些新题(开学一堆事不知道又有没有时间刷ctf了)

2025-01-30 19:51:17 204

原创 SQL注入篇5(sqlmap的使用Web201-210)

这几个题在B站ctfshow上都有讲解。

2024-10-05 16:29:46 1065

原创 SQL注入篇4(web191-200)

结果中提取的某一行的第一个字段值,我们可以使用 select 来设置 $row[0] 的值,再提交我们设置的 password 满足两者相等;insert ctfshow_user(`username`,`pass`) value(1,1)Web198-200都可以用show tables。过滤了ascii,web190的脚本换成ord。mid() 函数用于从文本字段中提取字符;,显示过滤了 select 但可以绕过。密码为ctfshow_user,或者。执行后使用 1 和 1 进行登录。

2024-10-03 17:34:53 632

原创 一道有趣的web题(目录穿越、session 伪造和 SSTI)

韬哥出的一道题,上课的时候没做出来,没想到目录穿越我还以为是文件上传(韬哥还是tql)相关考点:目录穿越、session 伪造和 SSTI。

2024-10-03 17:18:37 478

原创 SQL注入篇3(web186到190)

在 SQL 中,数字和字符串的比较是弱类型的,如果在比较操作中涉及到字符串和数字,SQL 会尝试将字符串转换为数字,那么只要字符串不是以数字开头,比较时都会转为数字 0。那么如果 md5($_POST['password'],true) 的返回值为 'or'1(除0外任意数字开头)xxx SQL语句将被拼接为。因此我们可以用户名和密码都输入 0 ,尝试登录一个用户名和密码都不是数字开头的用户。对于$password = md5($_POST['password'],true);(这个师傅讲的也很详细)

2024-10-01 17:28:52 889

原创 SQL注入篇2(web181-185)

又要写脚本了(贴上大佬的),其实逻辑不是很复杂,但是我比较懒(,现在感觉写这种脚本把逻辑直接说给gpt写的也很快稍微改改就可以。为什么是布尔盲注呢,后面尝试注入的时候发现查询成功返回1,查询失败返回0,那么就可以一个一个字符猜测flag的值喽。'%0cor%0cusername%0clike%0c'flag(%0c代替空格)0'||%0cusername%0clike'f%(%匹配任意长度字符)0'||%0cusername%0clike'f___(_匹配单个字符)%0c换成%01到%08都可以。

2024-10-01 11:13:33 418

原创 SQL注入篇1(web171到180)

payload = f"1' or ascii(substr((select(group_concat(table_name))from(information_schema.tables)where(table_schema)='note'),{i},1))>{mid}#" #查表。#payload = f"1' or ascii(substr((seleCt(flag)from(fl4g)),{i},1))>{mid}#" #查数据。查询结果和sql语句都不能出现数字。

2024-09-28 22:34:27 962

原创 命令执行篇4(web71-75)

是PHP中的一种魔术方法,当一个对象需要被当作字符串时会被调用。这里它将文件或目录的名字转换为字符串。输出后跟一个空格,用于分隔文件名。那么就用PDO(PHP Data Objects)上溯两级目录后再获取当前目录下的所有文件和目录。找到flag0.txt 利用uaf脚本绕过。对象,用于遍历当前目录下的所有文件和目录。遍历当前目录下的所有文件和目录;include()用不了,>先闭合前面php,然后。是一个特殊的URI,它告诉。获取根目录下所有文件和目录。nclude 打不开,uaf脚本也打不开,

2024-09-28 21:57:35 467

原创 命令执行篇3(web55-70)

POST传参:c=include($_POST['w']);get_reverse_number = "$((~$(({}))))" # 取反操作。关于为什么是c=.+/?POST传参:c=highlight_file("flag.php");例如,如果你有一个字符串模板,你可以使用。方法将变量值填充到这些占位符中。作为占位符,然后使用。

2024-09-26 12:55:51 453

原创 命令执行篇2(web41-54)

/ 执行变量$c中包含的命令,并将输出重定向到/dev/null,这意味着不显示任何执行结果。留下了"|"运算符可以用没被过滤的字符通过或运算拼出我们想用的字符。命令在 Linux 中用于显示文件内容并加上行号。nl flag.php%0a 然后查看源代码(或者c=tac flag.php%0a。14.web47到web50类似。空格可用%09(tab键)绕过。下面是一个具体的例子。

2024-09-26 10:52:10 390

原创 命令执行篇1

或者 c=show_source(next(array_reverse(scandir(getcwd()))));current() 函数返回数组中的当前元素(单元),默认取第一个值,和pos()一样。

2024-09-25 21:12:36 811

原创 信息搜集篇

考察PHP探针php探针是用来探测空间、服务器运行状况和PHP信息用的,探针可以实时查看服务器硬盘资源、内存占用、网卡 流量、系统负载、服务器时间等信息。url后缀名添加/tz.php 版本是雅黑PHP探针,然后查看phpinfo搜索flag。mdb文件是早期asp+access构架的数据库文件直接查看url路径添加/db/db.mdb 下载文件通过二进制编辑软件打开或者通过EasyAccess.exe打开搜索flag即可。Robots.txt,index.phps(phps是。是unicode编码。

2024-09-25 20:42:13 371

原创 2024-HIT-CSAPP-大作业

根据Hello的自白,利用计算机系统的术语,简述Hello的P2P,020的整个过程。P2P:From Program to Process(大致分为四个阶段)(1)预处理:首先,Hello的开始是一段储存在磁盘上的程序文本(Program),在需要使用这一个代码文件的时候,用预处理器处理hello.c文件,生成一个hello.i文件也就是修改了的源程序(2)编译:编译器将hello.i翻译程hello.s,编译这个阶段包括语义分析、语法分析、词法分析。

2024-06-01 18:15:59 1295 2

空空如也

空空如也

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

TA关注的人

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