很久没正式打CTF,周末抽空参加了下安恒四月赛的DASCTF,个别题目质量还是蛮高的,这里把做出来的和赛后补充的做个记录。
MISC1(签到题):
题干:5G都来了,6G还远吗?
分析:附件大小将近1G,并且下载速度很慢:
不明所以,猜测思路是突破下载速度?但考虑到MISC题不会涉及到web知识,而且全题只涉及到一个partial文件,打开之后:
赛后才知道本题考点为断点下载。
MISC2:流量分析
题干:Dig something from blue shark.
分析:下载附件得到一个流量包,打开是蓝牙bluetooth音频的流量包:
猜测是蓝牙协议的分析,查了一会蓝牙协议后决定放弃,那就尝试其他思路:关键字搜索、查看协议分级、文件内容分离,binwalk一下发现,隐藏了一个7-zip压缩包:
尝试分离,三种办法:
1)dd分离
代码语言:javascript复制dd if=111.pcapng of=1.7z bs=1 skip=24437
2)Foremost
代码语言:javascript复制foremost 111.pcapng
3)Wireshark提取
其实还有更简单的方法,直接修改流量包的后缀为zip解压,打开zip文件:
解压密码为PIN码,这步难倒不少人,其实很简单:
解压即得flag:
MISC3:内存取证
题干:Keyboard
分析:下载附件是一个raw文件和一个secret,后缀为raw的文件较大,像镜像文件,盲猜内存取证题:
当然先用volatility这个工具探测一下:
代码语言:javascript复制volatility -f Keyboard.raw imageinfo
获取到机器版本profile,下面获取内存、历史命令、进程、文件等,具体命令可参考:
https://www.freebuf.com/column/152545.html
发现存在keayboard-log.exe和VeraCrypt.exe的进程:
代码语言:javascript复制filescan查找文件:
volatility -f Keyboard.raw --profile=Win7SP0x64 filescan | grep -E 'txt'
Dumpfiles导出文件:
volatility -f Keyboard.raw --profile=Win7SP0x64 dumpfiles -Q 0x000000003d700880 -D /root/test/
下一步对导出的文件使用strings命令查看字符:
代码语言:javascript复制2020- 3-29 22:36:41
ctfwikiCRYPTO ABC
CTKQEKNHZHQLLVGKROLATNWGQKRRKQGWNTA
2020- 3-29 22:39:24
But the password is in uppercase
两条提示信息:在ctfwiki的crypto分类中可以找到这种密码,而且密码是大写,尝试后发现是键盘密码的一种:
所以VeraCrypt的解密密码是:
代码语言:javascript复制VERACRYPTPASSWORDISKEYBOARDDRAOBYEK
VeraCrypt搜索一下是个加解密工具,这里思路就很清楚了,用VeraCrypt挂载加密卷Secret,挂载后得到一个vhd文件,通过磁盘管理打开,得到一个flag.txt,这里加了一个NTFS隐写,取消文件隐藏后notepad一下即可看到flag:
代码语言:javascript复制notepad flag.txt:real.txt
reverse:基础逆向
下载附件得到一个exe文件,Olly DBG或IDA分析都可以:
逻辑很简单,经典判断流,问题在于for循环中涉及到了i - 112,但是v5长度肯定没那么大,观察到v5和v6后面注释的内容,A0h-30h恰好为70h,换成十进制也就是112,所以for循环中v6的i - 112也就是v5数组,再根据这个加密过程编写解密代码即可得到flag:
代码语言:javascript复制#include<bits/stdc .h>
using namespace std;
int main(){
char v5[10010]="akhb~chdaZrdaZudqduvdZvvv|";
for(int i=0;i<strlen(v5); i)
v5[i]=(v5[i]-1)^6;
cout<<v5;
return 0;
}
Web1:反序列化POP链、字符逃逸
分析:访问地址,直接给代码:
代码语言:javascript复制<?php
show_source("index.php");
function write($data) {
return str_replace(chr(0) . '*' . chr(0), '