第二届数信杯南区wp-easyJava

news/2024/10/2 12:19:01

writeup

easyJava

用Eclipse Memory Analyzer进行分析,利用OQL查找字符串

这里要写正则表达式:我写了\\u.*意思是找unicode字符串,因为这里的中文都做了unicode编码

搜索到这么一个字符串列表,

转码——

红色框框里的是还原后的内容。如下:

想跟你说一个小秘密:我把码表修改成了真的旗帜怎么会这么轻易就让你拿到,但你都找到我了那我给你一个密文吧:赵钱孙李周吴郑王冯陈褚卫蒋沈韩杨朱秦尤许何吕施张孔曹严华金魏陶姜戚谢邹喻柏水窦章云苏潘葛奚范彭郎鲁韦昌马苗凤花方俞任袁柳酆鲍史唐费
0123456789abcdefghijklmnopqrstuvwxyzBCDEFGHIJKLMNOPQRSTUVWXY曹窦韦谢曹方范谢孔许何马沈郑吴喻沈尤苗昌曹喻吴谢卫许朱花沈窦蒋范孔窦吴窦沈昌苗韦孔施朱方曹施秦邹沈窦吴柏孔喻陈鲍pCNxpTJxojkPd65zdiQOpz5xbjgSdCcJoC5CdOQNomgTpmhydC5oz9

0123456789abcdefghijklmnopqrstuvwxyzBCDEFGHIJKLMNOPQRSTUVWXY是base64编码表,补上AZ+/=后,对pCNxpTJxojkPd65zdiQOpz5xbjgSdCcJoC5CdOQNomgTpmhydC5oz9进行解码,结果为:

flag{aa534ac5-2f1a-466c-baf7-1ad7edb6aX�

flag的末端必然是"}"结尾,而"}"的ASCII码为0x7d,二进制为01111101
pCNxpTJxojkPd65zdiQOpz5xbjgSdCcJoC5CdOQNomgTpmhydC5oz9长度为54,base64编码中每4个字符对应源字符串的3个字符,54除以4等于13余2,可知该字符串缺少2个字符,需要添加这两个字符并使得最后解码结果以"}"结尾。于是可以只考虑在dC5oz9添加字符

import redef generate_all_insertions(input_string, char1, char2):    all_insertions = []    for i in range(len(input_string) + 1):        for j in range(i, len(input_string) + 1):            modified_string = input_string[:i] + char1 + input_string[i:j] + char2 + input_string[j:]            all_insertions.append(modified_string)    return all_insertions# 获取字符串所有固定长度且不重合切片def generate_non_overlapping_slices(input_string, slice_length):    all_slices = []    for i in range(0, len(input_string), slice_length):        if i + slice_length <= len(input_string):            all_slices.append(input_string[i:i + slice_length])    return all_slices# 自定义字符集def custom_base64_decode(encoded_string):    custom_charset = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+/"    encoded_binary_string = ""    for char in encoded_string:        index = custom_charset.index(char)        binary_index = format(index, '06b')        encoded_binary_string += binary_index    chs = generate_non_overlapping_slices(encoded_binary_string,8)    # print(chs)    decode_string = ''    for ch in chs:        decode_string += chr(int(ch,2))    return decode_stringdef is_only_alpha_numeric(input_string):    # 使用正则表达式匹配只包含英文字母和数字的字符串    return bool(re.match('^[a-zA-Z0-9]+$', input_string))# 要解码的自定义base64编码字符串encoded_string = "pCNxpTJxojkPd65zdiQOpz5xbjgSdCcJoC5CdOQNomgTpmhy"front = custom_base64_decode(encoded_string)print(front)custom_charset = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+/"str1 = "dC5oz9"for i in custom_charset:    for j in custom_charset:        # 将生成的所有修改后的字符串逐个与原字符串连接        for modified_str in generate_all_insertions(str1, i, j):            result = custom_base64_decode(modified_str)            # 判断result[:-1]是否只包含英文字母和数字            if is_only_alpha_numeric(result[:-1]):                # print(result)                          if result[-1] == "}":                    print("i=%s,j=%s" % (i,j))                    print("拼接字符串: %s,UTF-8字符串: %s" % (modified_str,front+result))

结果:

i=1,j=Z
拼接字符串: dC51oz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6aAb2}
i=2,j=Z
拼接字符串: dC52oz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6aBb2}
i=3,j=Z
拼接字符串: dC53oz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6aCb2}
i=4,j=Z
拼接字符串: dC54oz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6aDb2}
i=5,j=Z
拼接字符串: dC55oz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6aEb2}
i=5,j=Z
拼接字符串: dC55oz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6aEb2}
i=6,j=Z
拼接字符串: dC56oz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6aFb2}
i=7,j=Z
拼接字符串: dC57oz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6aGb2}
i=8,j=Z
拼接字符串: dC58oz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6aHb2}
i=9,j=Z
拼接字符串: dC95oz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6bEb2}
i=9,j=Z
拼接字符串: dC59oz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6aIb2}
i=a,j=Z
拼接字符串: dC5aoz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6aJb2}
i=b,j=Z
拼接字符串: dC5boz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6aKb2}
i=c,j=Z
拼接字符串: dC5coz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6aLb2}
i=c,j=Z
拼接字符串: dC5ocz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6aX22}
i=d,j=Z
拼接字符串: dCd5oz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6cEb2}
i=d,j=Z
拼接字符串: dC5doz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6aMb2}
i=d,j=Z
拼接字符串: dC5odz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6aX62}
i=e,j=Z
拼接字符串: dC5eoz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6aNb2}
i=f,j=Z
拼接字符串: dC5foz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6aOb2}
i=g,j=Z
拼接字符串: dC5goz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6aPb2}
i=g,j=Z
拼接字符串: dC5ogz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6aXB2}
i=h,j=Z
拼接字符串: dCh5oz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6dEb2}
i=h,j=Z
拼接字符串: dC5hoz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6aQb2}
i=h,j=Z
拼接字符串: dC5ohz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6aXF2}
i=i,j=Z
拼接字符串: dC5ioz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6aRb2}
i=i,j=Z
拼接字符串: dC5oiz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6aXJ2}
i=j,j=Z
拼接字符串: dC5joz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6aSb2}
i=j,j=Z
拼接字符串: dC5ojz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6aXN2}
i=k,j=Z
拼接字符串: dC5koz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6aTb2}
i=k,j=Z
拼接字符串: dC5okz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6aXR2}
i=l,j=Z
拼接字符串: dCl5oz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6eEb2}
i=l,j=Z
拼接字符串: dC5loz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6aUb2}
i=l,j=Z
拼接字符串: dC5olz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6aXV2}
i=m,j=Z
拼接字符串: dC5moz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6aVb2}
i=m,j=Z
拼接字符串: dC5omz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6aXZ2}
i=n,j=Z
拼接字符串: dC5noz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6aWb2}
i=o,j=Z
拼接字符串: dC5ooz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6aXb2}
i=o,j=Z
拼接字符串: dC5ooz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6aXb2}
i=p,j=Z
拼接字符串: dCp5oz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6fEb2}
i=p,j=Z
拼接字符串: dC5poz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6aYb2}
i=p,j=Z
拼接字符串: dC5opz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6aXf2}
i=q,j=Z
拼接字符串: dC5qoz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6aZb2}
i=q,j=Z
拼接字符串: dC5oqz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6aXj2}
i=r,j=Z
拼接字符串: dC5orz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6aXn2}
i=s,j=Z
拼接字符串: dC5osz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6aXr2}
i=t,j=Z
拼接字符串: dCt5oz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6gEb2}
i=t,j=Z
拼接字符串: dC5otz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6aXv2}
i=u,j=Z
拼接字符串: dC5ouz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6aXz2}
i=x,j=Z
拼接字符串: dCx5oz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6hEb2}
i=x,j=Z
拼接字符串: dC5xoz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6aab2}
i=y,j=Z
拼接字符串: dC5yoz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6abb2}
i=z,j=Z
拼接字符串: dC5zoz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6acb2}
i=A,j=Z
拼接字符串: dC5Aoz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6adb2}  # 最终的正确flag
i=B,j=Z
拼接字符串: dCB5oz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6iEb2}
i=B,j=Z
拼接字符串: dC5Boz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6aeb2}
i=C,j=Z
拼接字符串: dC5Coz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6afb2}
i=D,j=Z
拼接字符串: dC5Doz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6agb2}
i=E,j=Z
拼接字符串: dC5Eoz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6ahb2}
i=F,j=Z
拼接字符串: dCF5oz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6jEb2}
i=F,j=Z
拼接字符串: dC5Foz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6aib2}
i=G,j=Z
拼接字符串: dC5Goz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6ajb2}
i=H,j=Z
拼接字符串: dC5Hoz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6akb2}
i=I,j=Z
拼接字符串: dC5Ioz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6alb2}
i=J,j=Z
拼接字符串: dCJ5oz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6kEb2}
i=J,j=Z
拼接字符串: dC5Joz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6amb2}
i=K,j=Z
拼接字符串: dC5Koz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6anb2}
i=L,j=Z
拼接字符串: dC5Loz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6aob2}
i=M,j=Z
拼接字符串: dC5Moz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6apb2}
i=N,j=Z
拼接字符串: dCN5oz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6lEb2}
i=N,j=Z
拼接字符串: dC5Noz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6aqb2}
i=O,j=Z
拼接字符串: dC5Ooz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6arb2}
i=P,j=Z
拼接字符串: dC5Poz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6asb2}
i=Q,j=Z
拼接字符串: dC5Qoz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6atb2}
i=R,j=Z
拼接字符串: dCR5oz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6mEb2}
i=R,j=Z
拼接字符串: dC5Roz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6aub2}
i=S,j=Z
拼接字符串: dC5Soz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6avb2}
i=T,j=Z
拼接字符串: dC5Toz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6awb2}
i=U,j=Z
拼接字符串: dC5Uoz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6axb2}
i=V,j=Z
拼接字符串: dCV5oz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6nEb2}
i=V,j=Z
拼接字符串: dC5Voz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6ayb2}
i=W,j=Z
拼接字符串: dC5Woz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6azb2}
i=Z,j=Z
拼接字符串: dCZ5oz9Z,UTF-8字符串: flag{aa534ac5-2f1a-466c-baf7-1ad7edb6oEb2}

只有拼接A、Z的才是正确的flag,不知道为什么。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/29407.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

Ubuntu中安装OpenSSL

一、前期准备 1.1 压缩包下载 在安装openssl之前,我们需要下载对应的压缩包 https://www.openssl.org/source/openssl-3.0.1.tar.gz 此压缩包可以选择win上下载后解压再复制到本地虚拟机中,也可以选择直接在本地虚拟机中使用wget命令进行下载。当然,在使用wget命令时,我们需…

建发弘爱 X 袋鼠云:加速提升精细化、数字化医疗健康服务能力

厦门建发弘爱医疗集团有限公司(简称“建发弘爱”)创立于2022年,是厦门建发医疗健康投资有限公司的全资子公司,专业从事医疗健康领域的医疗服务。 建发弘爱通过医疗、健康及产业服务三大板块,为百姓提供医疗和健康全生命周期解决方案。以医疗机构为核心,管理及运营弘爱医院…

删除单向链表中数据最小的结点

删除单向链表中数据最小的结点(1)算法的基本设计思想 要找到链表中数据最小的结点,可以使用4指针法。具体步骤如下:定义4个指针,分别命名为MinNodeprev、MinNode、CurrentNodePrev、CurrentNode,MinNodeprev、CurrentNodePrev指向链表的头结点,MinNode、CurrentNode指向…

Java-线程-线程池

0.背景参考资料:Java线程池实现原理及其在美团业务中的实践在 Java 早期,每次创建线程时,都要涉及到线程的创建、销毁以及资源管理,这对于系统的性能和资源利用率是一种浪费。 因此,Java 提供了线程池的概念,以提高线程的管理效率和性能。资源管理优化:传统的线程创建和…

8.2版本Web端移动开发调试强制跳转新移动框架

解决方案: Common.config文件中增加配置项 <add key="MobileLoginType" value="1" /> 如下图其他注意事项: 没有配置MobileLoginType属性 或 MobileLoginType = "" 或 MobileLoginType = 2 都会执行重定向 MobileLoginType = 3 系…

Error: Cannot find module ‘D:\SoftSetupLoaction\nodejs\node_global\node_modules\npm\bin\npm-cli.js‘

Error: Cannot find module ‘D:\SoftSetupLoaction\nodejs\node_global\node_modules\npm\bin\npm-cli.js‘ 出现原因: 重新安装可装了nodejs和npm 网上查了很多方法,都建议重装,但是都没有效果(因为我就是重装之后出现的问题) 按照错误提示node_global找不到npm-cli.js,个人…

初探pinctrl子系统和GPIO子系统

前言: 在前面的led驱动程序和按键驱动程序中,无论是最传统的方法,还是总线设备驱动模型,还是基于设备树的总线设备驱动模型,都是直接操作寄存器的方法。驱动开发的本质确实是操作寄存器,但是一个芯片有几百个引脚,只是操作少数的几个引脚还好,如果是大量的引脚,比如LC…

PVE新增硬盘并扩容给 local分区

PVE安装在120G的固态硬盘,现在加了一块1T的机械硬盘作为虚拟机系统用,需要把磁盘扩容给 local分区 1、ssh连上pve,使用 lsblk 查看硬盘驱动器路径,我这里新加的硬盘是 sda,硬盘还未进行分区 2、fdisk /dev/sda,对硬盘进行分区操作,注意你自己的硬盘名称,千万小心不要搞…