2022蓝帽杯个人赛

手机取证 1

627604C2-C586-48C1-AA16-FF33C3022159.PNG图片的分辨率是?[答案格式:19201080]

 

360360

 

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

 

 

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

 

 

得到结果为360x360

 

手机取证 2

姜总的快递单号是多少?[答案格式:QA1234567890]

 

SF1142358694796

 

方法1:

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

 

 

在skype中找到单号为SF1142358694796

 

方法2:

在盘古石取证阅读器查找聊天软件中的聊天记录,其中在skype软件的群聊里,发现涉案人员姜总在聊天中提及了一个快递单号信息。考察了对手机取证的内容做详细审核查找。

 

 

计算机取证 1

从内存镜像中获得开机密码是多少?[答案格式:lanmaobei]

 

anxinqi

 

方法一:

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

 

 

获取密码为anxinqi

 

 

 

方法二:

在计算机取证里有两个文件,发现1.dmp是内存镜像文件,因为它能够被volatility软件解析,使用hashdump命令得出哈希密码,再去解密得到开机密码,常规CTF取证题的思路。

 

 

计算机取证 2

制作该内存镜像的进程Pid号是多少?[答案格式:1024]

 

2192

 

方法一:

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

 

 

 

方法二:

使用Volatility Workbench将内存镜像导入,点击Get Process List,显示所运行的进程,以及PID:2192

 

 

 

 

计算机取证 3

bitlokcer分区某office文件中存在flag[答案格式:flag{abCd1234}]

 

flag{b27867b66866866686866883bb43536}

 

方法一:

使用取证大师导入物理镜像,发现C盘被BitLocker加密了

 

 

使用取证大师中的内存镜像解析工具,将内存导入,得到bitlocker内存密钥

 

 

将文件导出,再到取证大师中对分区进行分区解锁

 

 

打开后发现pass.txt的密码本文件,从渗透看取证.pptx以及我天.docx两个Office文件,将它们导出到本地,使用PassFeb for Office将Pass.txt的字典导入进去,对两个文件进行字典破解

 

 

发现密码后,对两个文件进行输入密码查看

 

 

发现从渗透看取证.pptx中存在Flag,

得到结果flag{b27867b66866866686866883bb43536}

 

计算机取证 4

Tc加密存在flag是什么?[答案格式:flag{abCd1234}]

 

flag{1349934913913991394cacacacacacc}

 

这个新建文本文档.txt的大小很可疑,应该是个加密容器文件,尝试使用内存镜像对其进行解密。

 

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

Passware Kit Forensic中添加内存镜像和新建文本文档.txt获得解密后的镜像新建文本文档-unprotected.txt,将该文件用FTK挂载进行查看,找到一个压缩包

 

 

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

 

 

解压zip中的txt

 

 

得到flag{1349934913913991394cacacacacacc}

 

程序分析 1

程序包名是?[答案格式:abv.va.as]

 

exec.azj.kny.d.c

 

AndroidManifest.xml是Android应用的入口文件,利用反编译软件JADX进行查看

 

程序分析 2

程序的入口是?[答案格式:asd.xda.asd.ca]

 

minmtta.hemjcbm.ahibyws.MainActivity

 

JADX查看入口,得到结果minmtta.hemjcbm.ahibyws.MainActivity

 

 

 

程序分析 3

程序的服务器地址的密文是?[答案格式:asdqwewe]

 

aHR0cHM6Ly9hbnNqay5lY3hlaW8ueHl6

 

审计代码,在入口发现了base64加密的数据

 

 

根据代码做Base64解码,得到了一个地址

 

 

得到结果为aHR0cHM6Ly9hbnNqay5lY3hlaW8ueHl6

 

程序分析 4

程序实现安全检测的类的名称是?[答案格式:cla]

 

a

 

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

 

 

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

 

 

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

 

 

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

 

 

因此得到结果为a

 

网站取证

案情:据了解,**网上商城系一团伙日常资金往来用,从2022年4月1日起使用虚拟币GG币进行交易,现已获得该网站的源代码以及部分数据库备份文件,请您对以下问题进行分析解答。

 

网站取证 1

请从网站源码中找出木马文件,并写出木马连接的密码。[答案格式aaa123]

 

lanmaobei666

 

使用网站木马扫描工具对整个网站目录进行扫描,发现有一个可疑文件,以此打开确认木马文件为0f71e181346d43e56722aec663e5d4e9.php

 

 

网站取证 2

请提交数据库连接明文密码。[答案格式Abc123]

 

KBLT123

 

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

 

 

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

 

 

得到密码

 

 

得到结果KBLT123

 

网站取证 3

请提交数据库金额加密混淆使用的盐值。[答案格式Abc123]

 

jyzg123456

 

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

 

 

得到结果jyzg123456

 

网站取证 3

请计算张宝2022-04-02 00:00:00-2022-04-18 23:59:59累计转账给王子豪多少RMB[答案格式:123.66]

 

15758353.76

 

分析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

posted @ 2022-08-04 13:57  Knight0v0  阅读(108)  评论(0)    收藏  举报