ISCTF2022WP

打印 上一主题 下一主题

主题 824|帖子 824|积分 2472

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的去学习下)
  1. [/code][code]import hashlib
  2. import random
  3. import string
  4. import base64
  5. import re
  6. import time
  7. from pwn import *
  8. def decode1(key, hashsha):
  9.     for i in range(100000000000000):
  10.         str_list = random.sample(string.digits+string.ascii_letters, 4)
  11.         random_str = ''.join(str_list)
  12.         print(random_str)
  13.         if hashlib.sha256((random_str+key).encode('utf-8')).hexdigest() == hashsha:
  14.             print(random_str)
  15.             return random_str
  16. def decode2(code):
  17.     key = base64.b64decode(code)
  18.     return key.decode('utf-8')
  19. def search(code):
  20.     pattern = '.*?key{(.*?)}.*?'
  21.     key = 'key{'+re.findall(pattern, code, re.S)[0]+'}'
  22.     return key
  23. if __name__ == '__main__':
  24.     conn = remote('ip', port)
  25.     info1 = conn.recv(numb=2048)
  26.     print(info1)
  27.     time.sleep(3)
  28.     first = decode1(info1[16:32].decode('utf-8'), info1[37:101].decode('utf-8'))
  29.     conn.sendline(first.encode('utf-8'))
  30.     info2 = conn.recv(numb=4096)
  31.     info22 = conn.recv(numb=4096)
  32.     code1 = info2[42::1]
  33.     code2 = info22[:-21]
  34.     print(info2[42::1])
  35.     print(info2)
  36.     print(info22)
  37.     b64 = decode2(code2)
  38.     two = search(b64)
  39.     conn.sendline(two.encode('utf-8'))
  40.     info3 = conn.recv(numb=2048)
  41.     print(info3)
复制代码
  1. 改一下ip和port,直接跑就能得到flag<br><br><br><strong>手残党福利</strong><br><br>这题很有意思,一开始第一关都跳不过(我手残),下载下来是个iwanna,打开通过第一关,发现生成了一个save1文件,百度一下发现是存档文件。<br><br>这就有意思了,直接原样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'
[code][/code]  

 上传phar协议解析,得到flag
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

卖不甜枣

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表