PolarD&N PIoTS 困难

openwrt

一、查看题目

有一个openwrt.bin的文件

二、题目分析

openwrt是一个开源的路由器固件

file看一下文件类型,binwalk分离一下

在_openwrt_test.bin.extracted中发现了squashfs-root/lib/apk/packages

packages能帮助我们了解openwrt 固件里面“装了什么、文件在哪、配置在哪” ,相当于一个索引目录

打开0712.list,发现用户自定义的目录

根据路径找到huangleiSAMA文件

#!/bin/sh
original_message="Hello, iot!"
md5_hash=$(echo -n "$original_message" | md5sum | awk '{print $1}')
echo "flag{$md5_hash}"

这段Shell脚本的功能是生成一个基于特定字符串的 MD5 哈希值,并以<font style="color:rgba(0, 0, 0, 0.85);">flag{...}</font>的格式输出。要获取 flag,只需执行这个脚本即可

三、解题步骤

运行huangleiSAMA得到flag

flag{38f15cee4cdb204de5ca6a9373b73603}

企鹅的失眠日记

一、查看题目

附件是一个firmware.bin文件

题目描述:

我是小企鹅,有一天去买鱼吃的路上,碰到了卖路由器的贩子,正好家里的网络不好,于是它就买了一个去改善一下生活,可是听别人说这个路由器有些奇怪,于是我就研究了好久,我发现每次路由器启动的地方会有些奇怪的事情,好希望有人帮我一下呜呜呜~要不然又该失眠了~~

二、题目分析

binwalk分离出一个文件夹

根据题目描述信息“每次路由器启动的地方会有些奇怪的事情”,在init处可能存在可疑文件,发现polar文件

分析polar文件

polar是32位的arm框架ELF文件,但我是64位,所以我们用IDAx32打开,查看main()函数:

这里需要将整数值转化位小端序再逐个与 0x23 异或,但我们发现字符串“ELBDXsLLBQ|hLW|`kFFQP~”

EXP:

def xor_chars(input_str, key):
    result = []
    for char in input_str:
        ascii_code = ord(char)
        xor_code = ascii_code ^ key
        result.append(chr(xor_code))
    return ''.join(result)

if __name__ == "__main__":
    original = "ELBDXsLLBQ|hLW|`kFFQP~"
    key = 0x23
    encrypted = xor_chars(original, key)
    print(f"{encrypted}")
#foag{Pooar_Kot_CHeers]

手动改一下

flag{Polar_iot_cheers}

蓝牙灯泡BLE

一、查看题目

附件是一个BLE.pcapng文件

题目描述:

这个是智能蓝牙灯泡包,刚开始灯泡是处于亮起的情况,要获得开启灯泡的特征值,请你找到并进行md5加密。

找到开启灯泡的特征值

二、题目分析

查看流量包,这是一个ble蓝牙低功耗的流量包

根据ble低功耗蓝牙的协议,过滤所有的ATT协议

可进行搜索Write Request或Write Command,发现主设备向从设备写入了特征值value
但根据题目描述,灯泡原本是亮起的,则这是关灯灯泡的特征值

继续查找发现新的特征值,推断这是开启灯泡的特征值

Value:0e000000000000000000000404020181

flag{ed340a53dd9ca610af10de7ee4302ef3}

SmartLock Classic

一、查看题目

附件一个mfd文件和一个md文件

README.md

# IoT NFC Sector CTF — SmartLock Classic
## 背景
某智能门锁(SmartLock-Home)使用 **MIFARE Classic 1K** 作为用户凭据卡片。
厂商把应用配置和凭据片段散布在多个扇区的数据块里,但 **大量扇区仍使用默认 KeyB (FFFFFFFFFFFF)**,导致任何持卡人都能读取配置与数据块。

你拿到的是该卡片的 **原始 dump** 文件:`lock_tag.mfd`(1024 字节,64 块,每块 16 字节)。
你的任务是:**根据卡片内的“配置区”拼接还原出凭据(即本题 flag)**。

> 本题不涉及加解密,完全是“扇区与访问控制配置”导致的敏感信息泄露。

## 已知
扇区编号 0..15,每扇区 4 块(0..3),**每扇区第 4 块(索引 3)是 Trailer(包含 KeyA/Access/KeyB)**。

线索与配置位于 **Sector 8 的 B0..B2**(绝对块 32,33,34),且**配置有尾部在 Sector 9 的 B0(绝对块 36)**。

凭据被拆分成若干片段,散布在多个数据块。**配置 JSON 内含“片段位置(绝对块号、偏移、长度)”**。

## 文件
`lock_tag.mfd` — MIFARE Classic 1K 原始 dump

目标:重建 flag(形如 `flag{...}`)。

## 要求
请恢复完整 flag,并说明你的步骤。

二、题目分析

010Editor分析lock_tag.mfd文件

有flag字符串,根据README.md可知,lock_tag.mfd被拆成了16个扇区,每个扇区64块,0030h数据有丢失,进行修复

Hint得到Config 在Sector 8
有部分json配置(绝对块 32,33,34),绝对块36发现json配置缺少的信息。
json配置信息:{"f":[[9,0,6],[22,0,5],[37,0,6],[49,0,5],[58,0,5]]}
根据json配置信息拼出flag
[9,0,6]:flag{i
[22,0,5]:ot_nf
[37,0,6]:c_sect
[49,0,5]:or_me
[58,0,5]:dium}

flag{iot_nfc_sector_medium}

posted @ 2025-09-27 16:46  v1c0  阅读(51)  评论(0)    收藏  举报