Java教程

2022蓝帽杯初赛wp(取证)

本文主要是介绍2022蓝帽杯初赛wp(取证),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

战果

取证全解  misc出了1个  解其他题就像在坐牢 有那么一点思路,但不是完全有

手机取证_1

解压并打开阅读器,搜索627604C2-C586-48C1-AA16-FF33C3022159.PNG

右键导出相片,查看照片文件属性

得到结果为360x360

手机取证_2

解压并打开阅读器,搜索关键字“单号”

在skype中找到单号为SF1142358694796

计算机取证_1

Passware Kit Forensic 选择内存镜像分析,勾选Windows用户进行分析

获取密码为anxinqi

计算机取证_2

取证大师内存工具分析,发现MagnetRAMCapture这个进程,这个软件是专门用来制作内存镜像的工具

得到结果为2192

计算机取证_3

Passware Kit Forensic 选择内存镜像和加密卷进行解密

获得未解密版镜像

查看磁盘信息,发现多个office文件均被加密,还有一个pass.txt,推测需要跑字典

导出pptx docx pass.txt

Passware Kit Forensic添加pass.txt字典

跑密码

打开ppt输入密码

得到结果flag{b27867b66866866686866883bb43536}

计算机取证_4

导出未加密镜像中的新建文本文档.txt

Passware Kit Forensic中添加内存镜像和新建文本文档.txt获得解密后的镜像

Ftk imager打开查看,找到一个压缩包

导出哈哈哈.zip 用Passware Kit Forensic爆破压缩密码

得到密码为991314

解压zip中的txt

得到flag{1349934913913991394cacacacacacc}

程序分析_1

Jadx查看包名

得到结果exec.azj.kny.d.c

程序分析_2

Jadx查看入口

得到结果minmtta.hemjcbm.ahibyws.MainActivity

程序分析_3

审计代码,在入口发现了base64加密的数据,解密之后得到了一个地址

得到结果为aHR0cHM6Ly9hbnNqay5lY3hlaW8ueHl6

程序分析_4

模拟器安装运行时有root检测提示,这就是安全检测

全局搜索关键字“root环境”

定位到代码,通过观察if语句,发现判断条件中均调用了d.a.a.c.a类下的方法a和b

查看d.a.a.c.a.a 发现用getRuntime检测系统运行环境

因此得到结果为a

网站取证_1

代码审计,最后发现一句话木马

得到结果lanmaobei666

网站取证_2

查看数据库配置文件,发现密码是my_encrypt()的返回值

定位到这个函数,添加代码输出返回的密码

得到密码

得到结果KBLT123

网站取证_3

代码审计,最后观察到注释、得到信息

得到结果jyzg123456

网站取证_4

分析sql文件,提取汇率和对应的日期

查看转账数据,看出收款人id在付款人id之前,最后一个字段通过之前查看到的加密代码可以推断出是交易金额的密文

查看王子豪和张宝的id分别 5,3

则可以提取到特征信息“5, 3”,通过这个特征信息可以定位到张宝对王子豪的所有汇款记录

网站中有解密代码,我们可以魔改一下代码,让其接收我们的密文传参并返回解密后的金额

客户端提取相关数据并向服务端发送请求,接收返回的数据并计算总金额

import requests

#提取的日期对应的汇率

dir = {'2022-04-02': 0.04,

        '2022-04-03': 0.06,

        '2022-04-04': 0.05,

        '2022-04-05': 0.07,

        '2022-04-06': 0.10,

        '2022-04-07': 0.15,

        '2022-04-08': 0.17,

        '2022-04-09': 0.23,

        '2022-04-10': 0.22,

        '2022-04-11': 0.25,

        '2022-04-12': 0.29,

        '2022-04-13': 0.20,

        '2022-04-14': 0.28,

        '2022-04-15': 0.33,

        '2022-04-16': 0.35,

        '2022-04-17': 0.35,

        '2022-04-18': 0.37}

with open("bak.sql","r",encoding="utf-8") as fr:

    read = fr.readlines()

    count = 0

    total = 0

    url = "http://localhost/public/1.php"

    for v in read:

        #匹配目标数据

        if v.find("5, 3") != -1:

           #排除不在dir中的日期的汇款

            if v.split(", ")[4].split(" ")[0][1:] in dir:

                #向服务器发送请求,参数是数据库中加密的金额数据

                r = requests.get(url,params={"a":v.split(", ")[7][1:-4].encode('utf-8')})

                #汇率

                hui = dir[v.split(", ")[4].split(" ")[0][1:]]

                content = r.content.decode('utf-8')

                #计算总金额

                total += int(content) * hui

    print(total)

    #total=15758353.76

服务端处理客户端发来的加密数据,解密后传回给客户端

<?php

//接收参数,返回解密后的金额

$data = $_REQUEST["a"];

function decrypt($data, $key = 'jyzg123456')

{

    header('Content-type:text/html;charset=utf-8');

    $key = md5($key);

    $x = 0;

    $data = base64_decode($data);

    $len = mb_strlen($data);

    $l = mb_strlen($key);

    $char = '';

    $str = '';

    for ($i = 0; $i < $len; $i++) {

        if ($x == $l) {

            $x = 0;

        }

        $char .= mb_substr($key, $x, 1);

        $x++;

    }

    for ($i = 0; $i < $len; $i++) {

        if (ord(mb_substr($data, $i, 1)) < ord(mb_substr($char, $i, 1))) {

            $str .= chr((ord(mb_substr($data, $i, 1)) + 256) - ord(mb_substr($char, $i, 1)));

        } else {

            $str .= chr(ord(mb_substr($data, $i, 1)) - ord(mb_substr($char, $i, 1)));

        }

    }

    return $str;

}

echo decrypt($data,$key = 'jyzg123456');

?>

得到结果15758353.76

domainhacker

追踪http流发现webshell的通讯流量

编写脚本来解rce的命令

<?php

header("Content-Type:text/html;charset=GB2312");

$envstr=@base64_decode(substr($_REQUEST[8],2));

echo $envstr;

$p=base64_decode(substr("2VY21k",2));

echo("<br>".$p."<br>");

?>

 

解出密码

获取mimikatz的log文件

得到结果为flag{416f89c3a5deb1d398a1a1fce93862a7}

 

 

 

这篇关于2022蓝帽杯初赛wp(取证)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!