2022DASCTF Apr X FATE CTF部分wp

Misc

SimpleFlow

打开数据包,追踪TCP流,发现是蚁剑的流量
在这里插入图片描述
在流50、51发现flag.txt和flag.zip
在这里插入图片描述

在这里插入图片描述
解密流50的数据
在这里插入图片描述发现是使用了zip将flag.txt打包成flag.zip,并且密码为PaSsZiPWorD

将数据包丢进Kali,使用binwalk分离,得到压缩包
使用PaSsZiPWorD解压
得到flag
在这里插入图片描述

DASCTF{f3f32f434eddbc6e6b5043373af95ae8}
冰墩墩

解压压缩包,发现里面有10W+个txt
在这里插入图片描述在里面发现start.txt

start.txt:
101000001001011 =>The txt you should view is m9312r95cr.txt
m9312r95cr.txt:
1100000100 =>The txt you should view is 4oyjbqwl59.txt
将上述二进制数据补全至16位,如下:

0101000001001011 --->504b
0000001100000100 --->34(补全前面的0,所以应当为0304)

504b0304多么熟悉的16进制数据啊,到这里我们就大概清楚这题的初步思路:正则按顺序提取txt文档中的2进制数据,再转成16进制生成zip压缩包

接下来就是搓脚本了
ps:在python中,转换过来的16进制数据小于17时会忽略前一位的0,所以需要在前面加一个0,如3替换为03

#coding:utf-8
import re
from binascii import *

next_txt = "start.txt"
path = r"E:\学习资料\CTF\fatectf\BinDunDun"
zip_data = ""
while True:
    if next_txt =='end.txt':
        break
    else:
        f = open(path+"\\"+next_txt).read()
        bin_data = re.findall("(.*) =>",f)[0]
        full_bin_data = bin_data.zfill(16)
        zip_data +=full_bin_data
        next_txt = re.findall("is (.*)",f)[0]
        print(next_txt)
print(zip_data)
hex_file_data =""
for i in range(0,len(zip_data),8):
    hex_data = hex(int(zip_data[i:i+8],2))
    hex_data = hex_data.replace("0x","")
    if len(hex_data) == 1:
        hex_data = '0'+hex_data
    hex_file_data +=hex_data
with open("bdd_flag.zip",'wb') as f:
    f.write(unhexlify(hex_file_data))

打开压缩包,一个pyc文件和一个没有后缀的文件
在这里插入图片描述作为misc题目,先尝试一下pyc的剑龙隐写,发现一串的字符串
在这里插入图片描述

BingD@nD@n_in_BeiJing_Winter_Olympics

难道说,这就是我们心心念念的flag?
在这里插入图片描述

开开心心去提交flag,啪的一下提交,很快嗷
flag错误???
出题人我劝你耗子尾汁
在这里插入图片描述

010 打开另一个没有后缀的文件,发现是一个jpg图片,感觉是jpg图片隐写了,上面那个字符串应该是密码
在这里插入图片描述使用stegdetect检测,没检测出来
在这里插入图片描述
亚雷🐎,玩毛

采用笨方法,jpg隐写工具一个个去试咯
最后使用jphs05成功解密,得到一串base64字符串

REFTQ1RGe0dvb2RfSm9kX0dpdmVfVGhlX0ZGRkZMQGdfVG9fWW91IX0=

解密得到flag

DASCTF{Good_Jod_Give_The_FFFFL@g_To_You!}

crypto

easy_real

题目:

import random
import hashlib

flag = 'xxxxxxxxxxxxxxxxxxxx'
key = random.randint(1,10)
for i in range(len(flag)):
	crypto += chr(ord(flag[i])^key)
m = crypto的ascii十六进制
e = random.randint(1,100)
print(hashlib.md5(e))
p = 64310413306776406422334034047152581900365687374336418863191177338901198608319
q = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
n = p*q
c = pow(m,e,n)
print(n)
print(c)
#37693cfc748049e45d87b8c7d8b9aacd   23
#4197356622576696564490569060686240088884187113566430134461945130770906825187894394672841467350797015940721560434743086405821584185286177962353341322088523
#3298176862697175389935722420143867000970906723110625484802850810634814647827572034913391972640399446415991848730984820839735665233943600223288991148186397

取一个1~10的随机数作为Key,将每一位的flag与key做异或,得到的值作为明文再RSA加密一次。所以,求出m之后爆破key,再与key做异或即可得到flag
代码如下:

from Crypto.Util.number import *
import gmpy2
import random

e=23
n = 4197356622576696564490569060686240088884187113566430134461945130770906825187894394672841467350797015940721560434743086405821584185286177962353341322088523
c = 3298176862697175389935722420143867000970906723110625484802850810634814647827572034913391972640399446415991848730984820839735665233943600223288991148186397
p = 64310413306776406422334034047152581900365687374336418863191177338901198608319

q = n//p
phi = (q-1)*(p-1)
d = gmpy2.invert(e,phi)
m = pow(c,d,n)
hex_m = long_to_bytes(m)
key = random.randint(1,10)
m1 = [hex(i) for i in hex_m]
m2 = ''
for key in range(1,11):
    flag = ''
    for i in m1:
        flag1 = int(i,16)^key
        flag +=chr(flag1)
    print(flag)
flag{W31coM3_C0m3_7o_f4T3ctf}

【只是两个人相处,那么喜欢一个人,可能会觉得她哪里都好,但是以后在一起了,就要学会喜欢她的不好】

引用:MIME((Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。 它是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式每个MIME类型由两部分组成,前面是数据的大类别,例如声音 audio、图象 Image等,后面定义具体的种类。 常见的MME类型,例如:   超文本标记语言文本 .html,html text/htm   普通文本 .txt text/plain   RTF文本 .rtf application/rtf   GIF图形 .gif image/gif   JPEG图形 .jpg image/jpeg 上传包含一句话木马的php文件,然后使用burp抓包,修改数据包的content type为image/gif(注意是第二个content type)发送到repeater修改后,点击send,然后放包,即可显示上传php文件成功后的相对路径。使用蚁剑连接该一句话木马即可获得flag。 文件头检查 。 引用: htaccess 查看网页源码,可以看到常用的文件后缀都被禁用。根据题目的提示,.hatccess文件【.htaccess是Apache服务器的一个配置文件。它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面,改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。】 前提:mod_rewrite模块开启,配置文件中LoadMoudle rewrite_module module modules/mod_rewrite.so AllowOverride All,配置文件中AllowOverride All (如果可能做题过程中结果出现问题,但步骤正确,可以看看前提是否正确) 。 引用:文件头检验 是当浏览器在上传文件到服务器的时候,服务器对所上传文件的Content-Type类型进行检测。如果是白名单允许的,则可以正常上传,否则上传失败。 当我们尝试上传一句话木马的php文件,出现了正确后缀类型的弹窗。使用010editor制作一张图片木马,上传时使用burp抓包把文件后缀改为php,然后点击send。使用蚁剑连接php文件,即可在对应目录下找到flag。 00截断 。 关于ctfhub的全部WP,很抱歉我无法提供相关信息。由于ctfhub是一个综合性的CTF平台,涵盖了大量的题目和解题思路,每个题目的WP都有着不同的内容和解法。如果您对特定的题目或解题方法感兴趣,我可以为您提供更多信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值