![](https://img-blog.csdnimg.cn/20190927151117521.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
CTF
CTF
liqingdi437
他年若为青帝,报与桃花一处开
展开
-
[NSSRound#4 SWPU]1zweb
正常来说在反序列化过程中,会先调用wakeup()方法再进行unserilize(),但如果序列化字符串中表示对象属性个数的值大于真实的属性个数时,wakeup()的执行会被跳过。注意:要将php.ini中的phar.readonly选项设置为Off,否则无法生成phar文件。伪协议解析phar文件时,都会将meta-data进行反序列化,测试后受影响的函数如下。meta-data是以序列化的形式存储的。php一大部分的文件系统函数在通过。运行它,得到新的1.png,上传。运行它,得到一个1.png文件。原创 2024-07-14 01:29:59 · 177 阅读 · 0 评论 -
[GHCTF 2024 新生赛]ezzz_unserialize
finfo 该类的构造函数finfo::__construct — 别名 finfo_open(),也可以读取文件。SplFileObject 在此函数中,URL 可作为文件名,不过也要受到allow_url_fopen影响。GlobIterator 与上面略不同,该类可以通过模式匹配来寻找文件路径。array_walk() 函数对数组中的每个元素应用用户自定义函数。Heraclqs::__invoke中有一个弱比较。原创 2024-07-11 20:15:59 · 288 阅读 · 0 评论 -
[0ctf 2016]unserialize
以此推算,hacker比where多出一个字符,34个where即可。同时可以利用class.php中的filter过滤。由此想到可以将photo文件路径修改为。将base64解密即可得到flag。大致的查看源码,发现flag藏在。文件中发现调用photo文件路径。像这种反序列化题都会有源码。根据这个线,找到可利用点。抓包update.php。得到www.zip源码。那我们需要找到可以调出。所以需要多出34个字符。可以利用数组绕过过滤。原创 2024-07-10 17:18:54 · 311 阅读 · 0 评论 -
[安洵杯 2019]easy_serialize_php
该函数使用数组键名作为变量名,使用数组键值作为变量值。针对数组中的每个元素,将在当前符号表中创建对应的一个变量。将’php’,‘flag’,‘php5’,‘php4’,'fl1g’等字符串置空。按代码顺序,无论输入什么,后面都会添加一个$_SESSION[‘img’]即键应当被过滤7个字符,任意组合phpflag,phpfl1g等等都可。因此我们可以利用过滤的字符串长度,逃逸,提前闭合。添加前一个键的值,该值任意。如果键被过滤置空,需要将。将需要传入的页面替换成。,即需要显示的页面。原创 2024-07-10 01:49:05 · 381 阅读 · 0 评论 -
[NISACTF 2022]babyserialize
【代码】[NISACTF 2022]babyserialize。原创 2024-07-09 02:56:32 · 441 阅读 · 0 评论 -
[SWPUCTF 2021 新生赛]ez_unserialize
将结果直接通过get请求提交即可得到flag。得到一个robots.txt目录。根据代码构造php序列化对象。原创 2024-07-08 16:12:25 · 251 阅读 · 0 评论 -
[HNCTF 2022 WEEK4]flower plus
使用脚本将花指令去除后,u,c,p一下基本没啥问题。用下面idapython脚本得到密文和key。根据两种花指令特征,写出去花指令脚本。可以得到下面正常main函数。分析可得为rc4+xor加密。原创 2024-06-09 19:47:18 · 204 阅读 · 0 评论 -
[HGAME 2023 week4]shellcode
看题目,将base64解密,然后dump下来,再拉进ida里,发现为tea加密。在tea加密中得到key。密文就是另外的一个文件。原创 2024-06-09 02:31:03 · 226 阅读 · 0 评论 -
[FSCTF 2023]Tea_apk
【代码】[FSCTF 2023]Tea_apk。原创 2024-06-09 01:16:26 · 245 阅读 · 0 评论 -
[羊城杯 2023]CSGO
下面一行是我们输入的flag加密,可以反证为base64变表加密。直接来到main_main,发现能可能是base64变表。注意一点,输入的数据尽可能长一点,不然没有完整的变表。此处为base64变表,来到v25的地址处。go语言的主函数是main_main。主函数初始化时,有反调试检测。打个断点在前面,然后nop掉。在前面打个断点,F9。原创 2024-06-08 23:30:42 · 181 阅读 · 0 评论 -
[SWPUCTF 2023 秋季新生赛]Junk Code
将所有E9修改为90即可。方法二:花指令去除脚本。原创 2024-06-02 15:02:33 · 207 阅读 · 0 评论 -
[AFCTF 2018]JPython
小祥为了保护自己的代码,修改了部分Python Bytecode指令集,并把这个指令集称之为JPython, JPython只能在他私人定制的环境上才能运行,其他人无法得到这个环境。现在,小明为了获取小祥代码中的秘密,收集到了三个文件 hash.pyc 可以直接使用Python 2.7运行的脚本 Jhash.pyc 通过hash.pyc转化而成的只能在JPython环境上运行的脚本 Jflag.pyc 藏着小祥最大的秘密,但是只能在JPython的环境运行。加密过程:base64加密->异或7。原创 2024-06-01 17:57:02 · 307 阅读 · 0 评论 -
[UUCTF 2022 新生赛]ez_rce
【代码】[UUCTF 2022 新生赛]ez_rce。原创 2024-05-29 19:47:08 · 231 阅读 · 0 评论 -
[HUBUCTF 2022 新生赛]ezsql
发现密文以md5(password)形式存储在数据库中。users要换成十六进制0x7573657273。思路:更新资料的时候可以同时更新所有密码。我们需要知道密码的字段名。爆password字段。原创 2024-05-15 00:54:47 · 288 阅读 · 0 评论 -
[陇剑杯 2021]
先认识一下发现题目GET /exec HTTP/1.1中有很明显的jwt特征点即:eyJ开头,所以认定为jwt认证。原创 2024-05-04 23:52:27 · 1131 阅读 · 0 评论 -
[UUCTF 2022 新生赛]ezsql
反向前后过滤了相同的字符串:or,from,wehere。原创 2024-04-28 16:38:04 · 450 阅读 · 0 评论 -
[MoeCTF-2022]Sqlmap_boy
用万能密码绕过,用’"闭合。查看网页源代码,得到提示。原创 2024-04-24 22:27:25 · 462 阅读 · 0 评论 -
[第五空间-2021]yet_another_mysql_injection
password输入必须和数据库中查询到的一样。username必须为admin。原创 2024-04-24 21:08:54 · 230 阅读 · 0 评论 -
[SWPUCTF-2022-新生赛]ez_sql
根据提示,POST传参得到假的flag。原创 2024-04-24 18:27:59 · 515 阅读 · 0 评论 -
第一届[长城杯信息安全铁人三项赛](初赛第一赛区)re
py3.11\Lib\site-packages\Crypto\Cipher\AES.py",使其输出key和iv。注意提示信息,可在3.11版本python下直接引用encrypto库。查看encrypto.pyd的用法和功能。将base64变表提取。原创 2024-04-09 11:57:22 · 361 阅读 · 1 评论 -
[柏鹭杯 2021]baby_python
可见核心代码在baby_core.pyc中,也就是在baby.exe_extracted\PYZ-00.pyz_extracted\baby_python中。pyinstxtractor解包,发现需要python3.7本版,不然解出来了,会发现PYZ-00.pyz_extracted文件夹中什么也没有。会有许多报错,也是正常的,因为PYZ-00.pyz_extracted目录下的文件被加密了。baby_python\baby_core.pyc.encrypted也是被加密的。接下来写个文件解密脚本。原创 2024-03-19 22:01:35 · 285 阅读 · 0 评论 -
[长城杯 2021 院校组]funny_js
根据题名提示为js,再在ida中查看,基本可以确定为quickjs题。原创 2024-03-17 04:59:05 · 922 阅读 · 0 评论 -
[长城杯 2022 高校组]baby_re
重要的函数在new.cp37-win_amd64.pyd中,我们直接在同一级文件夹中建立一个py文件来引用new即可,需注意的是编码格式(utf-8),我在这卡了。可见为base64,但进行了变表,我们也无法直接打开自定义的new库,查看重要函数,不过可以进行爆破。主要看run.pyc,uncompyle6反汇编。得到一个run.exe_extracted文件。base64的简单说明:3位加密为4位。看图标或查壳为python可执行文件。pyinstxtractor 解包。原创 2024-03-15 21:25:23 · 421 阅读 · 0 评论 -
[0xGame 2023]
讲一下思路:先判断v5是否等于某个数,然后将解密后的flag输出到一个临时文件夹中,最后还将这个临时文件删了。下面是详细的解题步骤:(因为这题是复现的,所以每个步骤都比较详细)不过这不用担心,可以直接修改主函数的跳转和v5的值。修改完后,按F5来到伪函数,双击v5,转到内存处。发现有个比较,这决定主函数是否跳转到解密。将v5的值修改为0x1CF410。就可以看见临时文件的存放地址了。用脚本调出来或者直接找,都行。用010Editor打开。动调得到iv和key。原创 2023-11-10 21:11:43 · 131 阅读 · 0 评论 -
[SHCTF-校外赛道]61名
将Java代码copy下来,在下面两处修改一下,将密文和密钥输出。在存放输入数据的内存处打个断点,进行AES加密时会断下。通过观察汇编,得知这是一个AES+base64组合加密。SMC题,可以动调解密,或者自己写个idc脚本。动调,输入42位数,修改跳转,得到key。动调到ArgList未与input运算前。动调,将每层的迷宫打出来,然后跑脚本。提取其中的数据,有点misc的味道了。当内存变化时,可以得到key的切片。接下来就是动调,判断切片的情况。重点在于AES的key和iv。原创 2023-10-31 21:25:17 · 169 阅读 · 0 评论 -
[MoeCTF]2023
junk_codeRUST根据提示下载完插件后,在IDAZ中运行以下代码生成插件ezandroid来到主函数,发现调用sub_270CDF函数来到主要逻辑处sub_27BF90函数跟进加密函数EXP原创 2023-10-16 22:44:00 · 207 阅读 · 0 评论 -
[HNCTF 2022 WEEK3]Help_Me!
【代码】[HNCTF 2022 WEEK3]Help_Me!原创 2023-10-08 01:03:20 · 127 阅读 · 0 评论 -
[GWCTF 2019]babyvm
存在三个主要函数。原创 2023-10-07 04:03:31 · 42 阅读 · 0 评论 -
[NCTF 2018]wcyvm
【代码】[NCTF 2018]wcyvm。原创 2023-09-27 18:45:54 · 62 阅读 · 0 评论 -
[HZNUCTF 2023 final]虽然他送了我玫瑰花
然后在main函数头处点p,生成函数,f5查看伪函数。funcs_40117E中有5个函数,分别逆向一下。存在花指令,永真跳转,将选中部分nop掉。先查看运算符的优先级:~大于&大于^这里重点讲一下第五个函数。原创 2023-09-23 16:31:27 · 257 阅读 · 0 评论 -
[HGAME 2023 week3]patchme
SMC函数,上idapython脚本。init会在main前运行。sub_13E0没什么。原创 2023-09-21 22:21:48 · 159 阅读 · 0 评论 -
Enigma Virtual Box 解包
链接:https://pan.baidu.com/s/1PEB8dr04wO90kUYmXIYOoA?解码,得到一个名为%DEFAULT FOLDER%的文件。下载Enigma Virtual Box 解包器。里面的untitled2.exe为解码后的文件。显然为base58加密。原创 2023-08-13 01:31:52 · 1076 阅读 · 0 评论 -
fork()双进程问题
fork()是一个系统调用函数,用于创建一个新的进程(子进程)。在调用fork()之后,操作系统会复制当前进程的所有资源(包括代码、数据、堆栈等),并将这些资源分配给新创建的子进程。子进程是父进程的副本,它具有相同的代码和执行状态。ptrace是一个UNIX-like操作系统中提供的系统调用,用于实现进程间的跟踪和调试功能。它允许一个进程(称为跟踪器)监视和控制另一个进程(称为被跟踪进程)的执行。原创 2023-08-10 00:50:20 · 97 阅读 · 0 评论 -
一道PIL题
思路:猫眼睛向左为1,向右为0,将得到的0和1转换为二维码,读取二维码中的信息,得到flag。原创 2023-08-03 13:50:06 · 53 阅读 · 0 评论 -
[HDCTF2023]basketball-复现
将它转为英文,长度为28:I want to play basketballI w。得到提示:(三个nugber可以作为一组进行查看)再跟进text_66函数,发现是辗转相除法。先将hint求出来,给了Str数组。根据hint想到RGB。原创 2023-08-02 23:19:22 · 165 阅读 · 0 评论 -
[WUSTCTF 2020]funnyre-复现
先来到startmain存在花指令,那就去除找到一处jz与jnz跳转一样,下面call和jnz也存在花指令一起nop掉这样的花指令存在4个,全部nop掉后f5得到伪代码但是里面存在这样的错误同样存在4处找到原先nop与其他地方对比发现,需要nop到xor前在main头处按p键生成函数进入main,分析,可用angr符号执行秒了flag长度为32位,加密后的flag在unk_4025C0。原创 2023-07-28 23:10:37 · 205 阅读 · 0 评论 -
[羊城杯 2021]BabySmc-复现
在网上找到python写的base64解密脚本,进行改写。通过观察,显然为一个base64变异加密,即异或。选一个地方下断点,得到自解后的Main函数。原创 2023-07-25 14:24:14 · 132 阅读 · 0 评论 -
[MoeCTF 2022]fake_key
:Str为全局变量,动调一下得到全部key。rand伪随机数,c语言编辑一下得到。原创 2023-07-24 22:16:53 · 198 阅读 · 0 评论 -
[MoeCTF 2022]ezTea
从另一个文件中得到运行结果:0x17, 0x65, 0x54, 0x89, 0xed, 0x65, 0x46, 0x32, 0x3d, 0x58, 0xa9, 0xfd, 0xe2, 0x5e, 0x61, 0x97, 0xe4, 0x60, 0xf1, 0x91, 0x73, 0xe9, 0xe9, 0xa2, 0x59, 0xcb, 0x9a, 0x99, 0xec, 0xb1, 0xe1, 0x7d。我打开出现乱码注释,不过不影响解题。原创 2023-07-23 23:39:22 · 189 阅读 · 0 评论 -
[HZNUCTF 2023 preliminary]easyAPK-复现
在代码中,解密函数`decrypt`使用了AES/CBC/PKCS5Padding加密模式,通过传入密钥和初始向量(IV)来初始化`Cipher`对象。点击登录按钮时,会获取用户输入的用户名和密码,并与`str1`和`str2`进行比较。如果匹配成功,则跳转到`ffuucc`界面,并显示登录成功的提示消息。在`onCreate`方法中,从资源文件中获取密钥并将密文进行解密。解密后的明文被存储在静态变量`str2`中,用于后续的用户名和密码验证。需要注意的是,该代码片段只提供了部分代码,可能无法直接运行。原创 2023-07-23 21:25:06 · 230 阅读 · 0 评论