2022工业信息安全技能大赛(鹏城·中汽创智杯)WriteUp
1.发送控制车辆起步攻击报文成功了吗
根据题目提示,直接搜索到
false{MzIwZjA1Y2RmMDI0OGZmMGQwODZhOGYxYTAyNDk5NTg=}
解码后为 320f05cdf0248ff0d086a8f1a0249958
按格式提交。
2.全身而退
ida分析。用户名要求有@。密码逐位比较。
if ( hasAt != 1 || (unsigned int)strlen((int)v17) <= 3 )
wrong();
if ( (unsigned int)strlen((int)key) <= 0x18 )
wrong();
if ( key[5] != '-' && key[11] != '-' && key[18] != '-' )
wrong();
if ( key[0] != key[10] )
wrong();
if ( key[1] != 'k' )
wrong();
if ( key[3] != 'y' )
wrong();
if ( key[25] )
wrong();
if ( key[2] != 'e' )
wrong();
if ( (unsigned __int8)key[4] != (unsigned __int8)key[17] + 2 )
wrong();
if ( key[6] != 'd' )
wrong();
if ( key[7] != 'r' )
wrong();
if ( key[8] != key[22] )
wrong();
if ( key[9] != 'I' )
wrong();
if ( !double_add(key[5], key[12], 9) )
wrong();
if ( (unsigned __int8)key[23] != (unsigned __int8)key[17] + 1 )
wrong();
if ( key[13] != 's' )
wrong();
if ( key[14] != 'f' )
wrong();
if ( !double_add(key[15], key[16], '\xFF\xFF\xFFz') )
wrong();
if ( key[21] != 'T' )
wrong();
if ( key[16] != 'H' )
wrong();
if ( key[20] != 'u' )
wrong();
if ( key[17] != '5' )
wrong();
if ( key[19] != 'p' )
wrong();
if ( key[22] != 'F' )
wrong();
if ( key[10] != key[21] )
wrong();
if ( !double_add(key[24], key[20], '\xC3') )
wrong();
得到key。输入验证。正确 。
Enter Key
> Tkey7-drFIT-csfgH5-puTF6Y
You key for flag.zip is{r%bb1t_s3w14l*2JBH8tckcTj}
得到解压密码。。解压后base64解码提交
fbfe1831e31f06826c04619f71d33cdd
3.你能获得TBOX权限么
远程172.10.0.9后扫描发现存在172.10.0.7
开放22SSH端口
爆破为root/123456
登陆后root下即为flag
4.双向认证-I
登录172.10.0.7后
在配置目录下获得flag
5.ADB
对得到的赛题压缩包进行字典爆破。得到密码为admin
解压压缩包获得流量文件
使用wireshark打开流量包,在流量包中的tcp报文中发现发现一串字符串,使用base64解密获得 flag
6.CAN校验和
看html源文件。 flag{e3}
7.蓝牙钥匙的春天
打开提供的流量包 ble.pcapng
使用crackle工具对流量包进行解密
crackle -i ble.pcapng -o decode.pcapng
再使用wireshark打开解密好的流量包
3633333733363633363133363633363233333336
33343334333136323634333433303744
在认证阶段过后的交换数据中提取出4组不重复的数据 3636364336313637374233393632363133333339
3337333333363335333236333330363536353330
进行两次16进制转字符串后得到flag
重新拼接
flag{9ba3973652c0ee0c76ca6cb36441bd40}
8.IVI云通信逆向
使用浏览器打开提供的页面
在页面源码中发现密文
base64解密后得到flag
9.UDS会话诊断报文逆向
打开得到的题目页面
查看源码可知点击图片获得报文内容
得到报文
072E08037F101200000000
072E080250850000000000
0726080210850000000000
072E080250850000000000
经分析错误报文应为072E08037F101200000000
flag{072E08037F101200000000}
10.想进OTA云平台后台吗
得知test,进行口令爆破,得到123456,登陆系统,即可得到flag
11.你能获取OTA云平台管理员账号吗
test用户登陆后,修改密码可以越权,修改ID为2、3、4、5,其中之一修改了admin密码,登陆系统
12.OTA云平台下载升级包
登陆IVI控制器后,在下载文件夹中,有个flag.bin
13.犯病的证书
每一行base64 -> base32 -> hex 得到两个大数,不管哪个是e,但肯定特别大,用winner attack,但不知哪个是n,哪个是e,逐个尝试.
14.OTA也有密码学
p 高位攻击
import gmpy2
from libnum import n2s
def get_p():
p_tmp = high_p >> 100
pbits = 512
kbits = pbits - p_tmp.nbits()
p_tmp = p_tmp << kbits
print("upper %d bits (of %d bits) is given" % (pbits - kbits, pbits))
PR.<x> = PolynomialRing(Zmod(n))
f = x + p_tmp
x0 = f.small_roots(X=2 ^ kbits, beta=0.4)[0] # find root < 2^kbits with factor >= n^0.4
p = p_tmp + int(x0)
print(p)
# 12672576027810761975840956553905924324108169270520824932988309977042643967090398117355253953195633095326913407044418517938977305083732740090760858841266427
return p
n = 99887986204824691113457754897953425406993412586030259044004283966194202433452866024995465248688896193125819761385921365388030307691682145106269184432165936577174730773115650122496935533603059557681592007428920955897003476296682566264772005134125852663260971355535474414913501328212769545952135420770881499467
high_p = 12672576027810761975840956553905924324108169270520824932988309977042643967090398117355253953195633095326913407044418517938976916071656473263683948565757952
c = 60892632870531527736168936092764360540444001132516385707722503916908754103226695486017453487062736234381054676371362727629810463942131025911987548258129968494970568666808924707742973891133835509680152888846660514999867855904526245118653625627350962892070880801708631095426004949079737332458656396176274243234
p = get_p()
e = 7
q = n // p
phi = (p - 1) * (q - 1)
d = gmpy2.invert(e, phi)
m = pow(c, d, n)
print(n2s(int(m)))
15. 不安全的远程诊断安全
最后几行有flag{XXXXX} base64 -> 在线解md5 得到 md5(md5($pass)): 为Thanos
将 Thanos md5加密得到 flag
找回丢失的密码
1.加密的wifi流量 爆破cap. 最后爆得root12222。
2.解密流量 airdecap-ng a.cap -e wifi -p root12222
3.最后在 tcp 流量中找到 504B0304压缩包,共2段。导出后解压。
4.提示要密码,爆一下。123
。
5.得到加密字符串 2次解密后得到 flag.