祝贺御林安全团队2022首届数据安全大赛初赛第13及wp的分享

WriteUp 4周前 admin
79 0 0

声明:本文内容仅供学习交流,所有因传播利用文章内相关技术造成的不良后果均由使用者本人负责,与本公众号和文章作者无关。如需转载,请注明出处,未经作者允许不得随意删改本文内容。

 

导读

10月25日至26日,在工业和信息化部网络安全管理局的指导下,中国电子信息产业发展研究院、中国信息通信研究院、国家工业信息安全发展研究中心、中国软件评测中心(工业和信息化部软件与集成电路促进中心)联合举办了“2022年首届数据安全大赛”赛道一(数据安全大闯关)预赛。

 

结果

来自全国各地的1000余支队伍积极报名参赛,最终角逐出前100名进入线下决赛。其中来自电子科技大学的御林安全团队的ab4o、小小火和落花三人组成的“清水河大专”队荣获初赛第13名!(掌声祝贺)

祝贺御林安全团队2022首届数据安全大赛初赛第13及wp的分享

祝贺御林安全团队2022首届数据安全大赛初赛第13及wp的分享

下面分享该次比赛的wp。

 

 

WP

一、泄露溯源定位1

wireshark过滤mysql

看到登录用户 最后一个交互最多 dataUser3

祝贺御林安全团队2022首届数据安全大赛初赛第13及wp的分享

 

二、泄露溯源定位2

github搜索dcf_customer字段,选择code

定位到repo

https://github.com/Tristan-Hao/Green-Berry/blob/main/catalogue.py

祝贺御林安全团队2022首届数据安全大赛初赛第13及wp的分享

提交内容为

https://github.com/Tristan-Hao/Green-Berry/blob/main/catalogue.py

 

三、泄露溯源定位3

mysql查询

祝贺御林安全团队2022首届数据安全大赛初赛第13及wp的分享

数据加密方式AES 密钥是aa01,分别对下面的数据进行解密,就可以得到泄露的数据类型ADEG

祝贺御林安全团队2022首届数据安全大赛初赛第13及wp的分享

 

四、SQL packet 1

看http方法,有个shell直接明文执行命令,

ls追踪http流 就可以看到secret

祝贺御林安全团队2022首届数据安全大赛初赛第13及wp的分享

祝贺御林安全团队2022首届数据安全大赛初赛第13及wp的分享

祝贺御林安全团队2022首届数据安全大赛初赛第13及wp的分享

 

五、SQL packet 2

http导出对象 一个个看,看到有hex编码,解一下,在文件最后看到secret

祝贺御林安全团队2022首届数据安全大赛初赛第13及wp的分享

祝贺御林安全团队2022首届数据安全大赛初赛第13及wp的分享

 

六、SQL packet 3

对第二问得到的内容进行代码解混淆,根据PHP反混淆经验看应该是phpjiami搞得一个PHP obsfucation

https://www.phpjiami.com/phpjiami.html

所使用脚本如下

https://github.com/wenshui2008/phpjiami_decode

解密后的内容为

祝贺御林安全团队2022首届数据安全大赛初赛第13及wp的分享

得到flag

c11d2a1b-3f7d-4578-b3d6-366d0e14a1d4

 

七、SQL packet 5

冰蝎流量分析 key是05c1cc9c2deafb75

流量包是先解aes再解base64,一个个看就可以看到有一个数据包有上传文件的操作 文件名如下

祝贺御林安全团队2022首届数据安全大赛初赛第13及wp的分享

祝贺御林安全团队2022首届数据安全大赛初赛第13及wp的分享

祝贺御林安全团队2022首届数据安全大赛初赛第13及wp的分享

 

八、账密泄密追踪1

https://github.com/Tristan-Hao/Green-Berry/blob/main/scrubbers.py

搜索关键字green berry

 

九、账密泄密追踪2

搜green berry还是青莓来着 ,忘了。repo是datasecurity,直接定位到了

https://gitee.com/datasecurity-qunzhong/qing-mei-login/blob/master/scrubbers.py

 

十、账密泄密追踪3

搜青莓 或者青梅 忘记了,定位到源代码 符合密钥条件

https://www.yuque.com/shuanxiaoming/gsx1eb/efnpu3

 

十一、账密泄密追踪4

知乎搜索qingmei 时间范围半年内 直接找到源代码

https://zhuanlan.zhihu.com/p/521587651

 

十二、账密泄密追踪5

搜青莓  反正那几个关键字 拼音 换着搜

https://blog.csdn.net/haoxin1983/article/details/125905827

 

十三、blue team1

祝贺御林安全团队2022首届数据安全大赛初赛第13及wp的分享

十四、blue team2

根据时间定位用户ming的登录日志

祝贺御林安全团队2022首届数据安全大赛初赛第13及wp的分享

使用日志分析工具辅助定位

祝贺御林安全团队2022首届数据安全大赛初赛第13及wp的分享

题目没太看懂,IP地址肯定是192.168.13.1,但是端口试了很多都不行,最后看到NTLM V2 ,试了一下RDP默认的3389就可以了

祝贺御林安全团队2022首届数据安全大赛初赛第13及wp的分享

 

十五、blue team3

procmon根据BT4的结果定位进程没有结果,试了几个可执行文件不行,遂放弃。

然后看进程,可以发现是通过WINWORD.EXE打进来的,与用户ming有关,搜一下用户ming的desktop与download目录

可以发现有helper.doc

祝贺御林安全团队2022首届数据安全大赛初赛第13及wp的分享

然后看WINWORD.EXE进程

祝贺御林安全团队2022首届数据安全大赛初赛第13及wp的分享

祝贺御林安全团队2022首届数据安全大赛初赛第13及wp的分享

最后可以看到是在helper.doc之后才能在C盘看到机密文件,考虑helper.doc是提权payload(先考虑交的其他dll和exe都不对)

祝贺御林安全团队2022首届数据安全大赛初赛第13及wp的分享

 

十六、blue team4

直接看进程树,看到了可疑进程audqky.exe,交了不对,遂交后面的,肯定对,因为像加载器的动作。

yxxxx.exe md5之后就可以了

祝贺御林安全团队2022首届数据安全大赛初赛第13及wp的分享

 

十七、blue team5

procmon翻一下 翻到了含身份证的,根据数据分级分类条例,危害程度比内网密码要高,所以交的这个文件名的MD5

祝贺御林安全团队2022首届数据安全大赛初赛第13及wp的分享

 

数据安全题

一、easy_node

访问/src查看源码,login的jwt验证存在缺陷,可以使用none注入

祝贺御林安全团队2022首届数据安全大赛初赛第13及wp的分享

祝贺御林安全团队2022首届数据安全大赛初赛第13及wp的分享

接着需要设置properties,遍历不能包含flag,最后getflag遍历要有flag

祝贺御林安全团队2022首届数据安全大赛初赛第13及wp的分享

突破点在copyArray函数, 会递归解析对象类型

 function copyArray(arr1){     var arr2 = new Array(arr1.length);     for (var i=0;i<arr1.length;i++){         if(arr1[i] instanceof Object){             arr2[i] = copyArray(arr1[i])         }else{             arr2[i] = arr1[i]         }     }     return arr2 }

因此设置properties

 {     "properties": {         "length": 1,         "0": {             "0": "flag",             "length": 1         } } }

经copyArray处理后会变成

 [ [ 'flag' ] ]

然后getflag即可,['flag']=="flag"

祝贺御林安全团队2022首届数据安全大赛初赛第13及wp的分享

 

二、ECB

祝贺御林安全团队2022首届数据安全大赛初赛第13及wp的分享

解一下返回的hex就可以看到flag,感觉像是非预期解?

祝贺御林安全团队2022首届数据安全大赛初赛第13及wp的分享

 

 

三、sneakshot

用mac打开 亮度调到最低 对比度拉满 可以看到flag字样,手机拍不太清,电脑上能看到flag字样

flag{22538e2282}

祝贺御林安全团队2022首届数据安全大赛初赛第13及wp的分享

 

 

数据算法题

一、手机号

比较重点的是正则匹配

 phone_pattern = "(?<=([^d]))(((+86)|(86)|((+86)))?[ ]?d{3}[ -/]?d{4}[ -/]?d{4}[^d])"

(?<=([^d]))意味着匹配非数字后面的,也就是手机号前面不能有数字。接着是匹配(+86), 86,或者+86,当然也可能没有,所以用的?。后面可能会跟一个空格[]。后面11位数字中,可能会有空格,-,/这三类分隔符(其它分隔符经手动验证,匹配到的不是手机号)。最后是一个[^d],防止出现匹配到大于11的数字字符串。

匹配后还有一点需要关注

祝贺御林安全团队2022首届数据安全大赛初赛第13及wp的分享

首先前缀3位需要满足题目条件,有些数据前面可能会有86,导致整个字符串是13位数字,也要分情况讨论。不过这种情况下,该行都会有关键字可以区分。

 

二、imei

 imei_pattern = r"(?<=([^d]))([0-9]([0-9]|[^0-9a-zA-Z!*%./^#,()'<>"]){13,20}[0-9])"

同样(?<=([^d]))意味着匹配非数字后面的。之后先匹配一个0-9的数字,末尾也匹配一个0-9的数字,中间可能是数字也可能是分隔符,所以用了一个|,经测试!*%.^#,()'<>这些分隔符得到的都不是imei。虽然imei只有15位,但是加上分隔符就会更多,所以这里用了{13,20}。

祝贺御林安全团队2022首届数据安全大赛初赛第13及wp的分享

这里同样需要imei的前两位满足题目条件。同时,银行卡号可能也会有15位数字,容易误报,这里就使用了两个关键字bank或者card。

 

三、bankCard

 card_pattern = r"(?<=([^d]))[0-9](([0-9]|[^0-9a-zA-Z!*%./^#,()'<>"]){13,24})"

同样(?<=([^d]))意味着匹配非数字后面的。之后先匹配一个0-9的数字,后面就匹配要么数字要么分隔符了。{13,24}是为了防止有多个分隔符。

祝贺御林安全团队2022首届数据安全大赛初赛第13及wp的分享

这里有三处需要注意的,第一个,手机号加上86就是13位了,经手动验证,如果 开头的两位数字是86,且全部数字长度是13,都是手机号,这里直接continue。第二个,imei15位也可能会冲突,这里是使用关键字_id, device, imei, equipment等去匹配,然后continue,剩下才是银行卡号13-19位数字的,同样前三位需要满足题目条件。

 

四、ip

 ip_pattern = r"((2((5[0-5])|([0-4]d)))|([0-1]?d{1,2}))(.((2((5[0-5])|([0-4]d)))|([0-1]?d{1,2}))){3}"

IP就没啥好说的了,可以直接谷歌搜索,保证在IPv4范围内即可。

 

五、email

 ems_pattern = r"[^@s>]+(@[^@s]+)+.[^@s]*(com|cn|net|org)"

经手动分析,邮箱后缀只有四个,注意有些没有后缀如gmail也是,@xx@xx可能有多个等。

中间其实都有diff一下,手工去验证,排除一些误报。

 

总结

这次比赛真的挺有意思的,除了传统ctf之外加了很多应急与流量分析的知识,能够让大家学习到很多知识,好评!希望这种比赛多多益善。

END

 

祝贺御林安全团队2022首届数据安全大赛初赛第13及wp的分享
扫码关注我们
御 梦 而 生   如 鹿 归 林

原文始发于微信公众号(御林安全):祝贺御林安全团队2022首届数据安全大赛初赛第13及wp的分享

版权声明:admin 发表于 2022年11月4日 下午10:05。
转载请注明:祝贺御林安全团队2022首届数据安全大赛初赛第13及wp的分享 | CTF导航

相关文章

暂无评论

暂无评论...