第七届精武杯-西柚的喵帕斯WP

计算机&&手机

1. 请综合分析计算机和手机检材,计算机最近一次登录的账户名是

admin

img

2.请综合分析计算机和手机检材,计算机最近一次插入的USB存储设备串号是

S3JKNX0JA05097Y

img

3.请综合分析计算机和手机检材,谢弘的房间号是()室

201

img

img

4.请综合分析计算机和手机检材,曹锦芳的手机号后四位是

0683

img

5.请综合分析计算机和手机检材,找到全部4份快递相关的公民信息文档,按姓名+电话+地址去重后共有多少条?

4997条

全部提取出来 其中顺丰2k是伪加密 改一下就可以正常解压 顺丰1k直接修改后缀名为xlsx

image-20240426173356074

使用网钜数据分析 导入4个excel表格

image-20240426173535343

由于没有表头 所以需要再算上第一行 一共是4997条数据

6.请综合分析计算机和手机检材,统计检材内共有几份购票平台相关的公民信息文档

3份

img

img

img

7.请综合分析计算机和手机检材,樊海锋登记的邮箱账号是

img

8.请综合分析计算机和手机检材,统计购票平台相关的文档,去重后共有多少条身份证号为上海的公民信息?

先搜一下身份证为上海的特征

img

img

import pandas as pd  
# 读取txt文件 
data = pd.read_csv('12306 裤子1.txt', delimiter='----', header=None, engine='python')  
# 将数据存储到xlsx文件中 
data.to_excel('output.xlsx', index=False)  
# 对第四列进行去重处理 
data.drop_duplicates(subset=[3], keep='first', inplace=True)  
# 筛选出上海公民
shanghai_citizens = data[data[3].str.startswith('31')]  
# 将上海公民的数据存储到一个新的xlsx文件中 
shanghai_citizens.to_excel('shanghai_citizens.xlsx', index=False) 

跑出来109个

9.请分析手机检材,2022年11月7日,嫌疑人发送了几条短信?

3条

img

10.请分析手机检材,其中保存了多少条公民住房信息?

张三 李四 王武 范宏伟 郭何 章衡 关星 常见 余辉遥 陈剑 吴涵 张智 12个人

img

apk功能分析

1、请分析1.备忘录.apk反编译出的文件中,正确答案在哪个文件里?

图片

2、请分析1.备忘录.apk并找到程序中的主activity是?(答案格式:com.tencent.mm.activity)

com.hl.memorandum.MainActivity

3、请分析1.备忘录.apk并找到程序中的flag值(答案格式:HL{66666666-1-1-1-1})

HL{d0b2058a-ac29-11ed-807f-acde48001122}

图片

4、请分析2.easyapk.apk中SharedPreferences配置文件的名称(包括后缀)是什么?

MT管理器查看data/data/<包名>/shared_prefs/

myprefs.xml

5、请分析2.easyapk.apk并找到程序中的flag值(答案格式:HL{66666666-1-1-1-1})

HL{55c99ed4-d894-ae59-3a3b-6fe3eed793e7}

看一下发现equal明文比对

图片

用frida hook equal函数拦截返回值

图片

其实还有一个思路直接去找对应的str1-str5的值

6、 请分析3.verify.apk,该程序中所使用的AES加密KEY值为

图片

7、请分析3.verify.apk并找到程序中的flag值(答案格式:HL{66666666-1-1-1-1})

HL{301b6b90-ac37-11ed-bad4-5811224dd424}

先用上一题拿到的key解aes

from Crypto.Cipher import AES
import base64

def decrypt_aes(key, iv, ciphertext):
    cipher = AES.new(bytes(key), AES.MODE_CBC, bytes(iv))
    plaintext = cipher.decrypt(ciphertext)
    return plaintext.rstrip(b'\0')

def main():
    # AES key,IV 和 ciphertext(密文)
    key = b'thisisyouraeskey'
    iv = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
    ciphertext = base64.b64decode(b'tPbnK29ENaqgPANeD1Hud3KyiS4uf8oaSa0b6ldRDHs=')

    # 解密
    decrypted_data = decrypt_aes(key, iv, ciphertext)
    print(decrypted_data.decode('utf-8'))

if __name__ == "__main__":
    main()

图片

接下来是misc……

拆包apk后找到一个lookme文件

图片

winhex打开发现是7z文件头

改后缀输入密码

图片

得到lookme.txt,内容为flag

8、请分析4.easyjni.zip,压缩包中数据库的解密秘钥为

图片

找到密钥的获取函数
编写frida脚本

setImmediate(function () {
   Java.perform(function () {
        var SQLiteOpenHelper = Java.use("net.sqlcipher.database.SQLiteOpenHelper");//获取类的引用
        SQLiteOpenHelper.getWritableDatabase.overload('java.lang.String').implementation = function (password) {//拦截getWritableDatabase方法的调用并指定参数类型
           console.log("SQLiteOpenHelper.getWritableDatabase is called: password=" + password);
           var result = this.getWritableDatabase(password);
           console.log("SQLiteOpenHelper.getWritableDatabase result=" + result);
           return result;
        };
    });
});

再根据判断条件构造符合要求的un和pw

图片

图片

9、请分析4.easyjni.zip并找到程序中的flag值(答案格式:HL{66666666-1-1-1-1})

图片

解密数据库拿到加密的账号密码:

账号密码的加密算法在 so 文件中,分析 so 文件,对字符串的每一位进行了加
减 以及位置交换等操作,最后进行了 Base64 换表加密。

图片

import base64
base64_chars = list("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=")
a = base64_chars[3]
base64_chars[3] = base64_chars[6]
base64_chars[6] = a
a = base64_chars[7]
base64_chars[7] = base64_chars[9]
base64_chars[9] = a
a = base64_chars[20]
base64_chars[20] = base64_chars[21]
base64_chars[21] = a
a = base64_chars[26]
base64_chars[26] = base64_chars[1]
base64_chars[1] = a
a = base64_chars[30]
base64_chars[30] = base64_chars[39]
base64_chars[39] = a
a = base64_chars[2]
base64_chars[2] = base64_chars[48]
base64_chars[48] = a
s1 = "".join(i for i in base64_chars)
s2 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='
data = "MXpjNjRjMzVyYl4zLmACMF8CXi1hMl9jXldbieFIRG91RJFJ"
result = list(base64.b64decode(data.translate(str.maketrans(s1, s2)).encode('utf-8')))
pLen = len(result) - 11
for j in range(0, pLen-1, 2):
 i = result[j]
 result[j] = result[j+1]
 result[j+1] = i
for i in range(0, int(pLen/2)):
 j = result[i]
 result[i] = result[pLen-1-i]
 result[pLen-1-i] = j
for i in range(pLen, pLen+11):
 result[i] = result[i] - 15
for i in range(pLen):
 result[i] = result[i] + 3
aa = "".join(chr(i) for i in result)
print(aa[-11:] + aa[:-11])

图片

10、请分析5.calc.apk并找到程序中的flag值(答案格式:HL{66666666-1-1-1-1})

Java 层只有验证输入是否正确的逻辑,算法都在 so 文件中。

图片

可知这里是加密函数:
ida 不能 F5,分析得知是没有识别 switch 结构,自定义 switch 结构即可。

图片

图片

//反编译后的函数:
__int64 sub_E7EC()
{
 __int64 v0; // x9
 int i; // [xsp+1Ch] [xbp-24h]
 unsigned __int8 *v3; // [xsp+20h] [xbp-20h]
 __int64 v4; // [xsp+28h] [xbp-18h]
 int v5; // [xsp+30h] [xbp-10h]
 int v6; // [xsp+34h] [xbp-Ch]
 int v7; // [xsp+38h] [xbp-8h]
 v7 = 0;
 v6 = 0;
 v5 = 0;
 v4 = 0LL;
 v3 = (unsigned __int8 *)sub_EA34();
 for ( i = 0; ; ++i )
 {
 if ( i >= 418 )
 return 1;
 if ( (unsigned int)byte_34000[i] - 1 <= 0xDuLL )
 break;
LABEL_20:
 ;
 }
 switch ( (unsigned int)jpt_E874 )
 {
 case 0u:
 v4 ^= 0x51uLL;
 goto LABEL_20;
 case 1u:
 dword_341A4[v7] *= 2;
 goto LABEL_20;
 case 2u:
 v6 = *v3;
 goto LABEL_20;
 case 4u:
 v4 += (unsigned int)(v6 * dword_341A4[v7]); //形式类似方程中
的 x1 * 12 + x2 * 14 + x3 * 52 .......
 goto LABEL_20;
 case 5u:
 ++v7;
 goto LABEL_20;
 case 6u:
 ++v3;
 goto LABEL_20;
 case 7u:
 ++v4;
 goto LABEL_20;
 case 8u:
 dword_341A4[v7] += 12;
 goto LABEL_20;
 case 9u:
 --v4;
 goto LABEL_20;
 case 0xAu:
 v0 = v5++;
 if ( v4 == qword_342A8[v0] ) //比较值
 {
 v4 = 0LL;
 goto LABEL_20;
 }
 return 0;
 case 0xBu:
 v3 -= 8;
 goto LABEL_20;
 case 0xCu:
 dword_341A4[v7] ^= 0x20u;
 goto LABEL_20;
 case 0xDu:
 dword_341A4[v7] -= 3;
 goto LABEL_20;
 default:
 goto LABEL_20;
 }
}

进行简单修改就可以使用 C 跑起来

#include <stdio.h>
int main(){
 __int64 v0; // x9
 int i; // [xsp+1Ch] [xbp-24h]
 //unsigned __int8 *v3; // [xsp+20h] [xbp-20h]
 __int64 v4; // [xsp+28h] [xbp-18h]
 int v5; // [xsp+30h] [xbp-10h]
 int v6; // [xsp+34h] [xbp-Ch]
 int v7; // [xsp+38h] [xbp-8h]
 unsigned char byte_34000[420] = {
 0x03, 0x05, 0x08, 0x0A, 0x06, 0x07, 0x03, 0x05, 0x08, 0x0
A, 0x06, 0x07, 0x03, 0x02, 0x05, 0x08,
 0x0A, 0x06, 0x07, 0x03, 0x05, 0x08, 0x0A, 0x06, 0x07, 0x0
3, 0x05, 0x08, 0x0A, 0x06, 0x07, 0x03,
 0x09, 0x05, 0x08, 0x0A, 0x06, 0x07, 0x03, 0x05, 0x08, 0x0
A, 0x06, 0x07, 0x03, 0x05, 0x08, 0x0A,
 0x06, 0x07, 0x0B, 0x0C, 0x03, 0x02, 0x05, 0x08, 0x0A, 0x0
6, 0x07, 0x03, 0x05, 0x08, 0x0A, 0x06,
 0x07, 0x03, 0x05, 0x08, 0x0A, 0x06, 0x07, 0x03, 0x05, 0x0
8, 0x0A, 0x06, 0x07, 0x03, 0x05, 0x08,
 0x0A, 0x06, 0x07, 0x03, 0x05, 0x08, 0x0A, 0x06, 0x07, 0x0
3, 0x05, 0x08, 0x0A, 0x06, 0x07, 0x03,
 0x05, 0x08, 0x0A, 0x06, 0x07, 0x0B, 0x0C, 0x03, 0x05, 0x0
8, 0x01, 0x01, 0x0A, 0x06, 0x07, 0x03,
 0x0E, 0x05, 0x08, 0x0A, 0x06, 0x07, 0x03, 0x05, 0x08, 0x0
A, 0x06, 0x07, 0x03, 0x0D, 0x05, 0x08,
 0x0A, 0x06, 0x07, 0x03, 0x05, 0x08, 0x0A, 0x06, 0x07, 0x0
3, 0x05, 0x08, 0x0A, 0x06, 0x07, 0x03,
 0x05, 0x08, 0x0A, 0x06, 0x07, 0x03, 0x05, 0x08, 0x0A, 0x0
6, 0x07, 0x0B, 0x0C, 0x03, 0x0D, 0x05,
 0x08, 0x0A, 0x06, 0x07, 0x03, 0x05, 0x08, 0x0A, 0x06, 0x0
7, 0x03, 0x05, 0x08, 0x0A, 0x06, 0x07,
 0x03, 0x05, 0x08, 0x0A, 0x06, 0x07, 0x03, 0x05, 0x08, 0x0
A, 0x06, 0x07, 0x03, 0x05, 0x08, 0x0A,
 0x06, 0x07, 0x03, 0x05, 0x08, 0x0A, 0x06, 0x07, 0x03, 0x0
5, 0x08, 0x0A, 0x06, 0x07, 0x0B, 0x0C,
 0x03, 0x05, 0x08, 0x0A, 0x06, 0x07, 0x03, 0x05, 0x08, 0x0
A, 0x06, 0x07, 0x03, 0x02, 0x05, 0x08,
 0x0A, 0x06, 0x01, 0x01, 0x07, 0x03, 0x05, 0x08, 0x0A, 0x0
6, 0x07, 0x03, 0x05, 0x08, 0x0A, 0x06,
 0x07, 0x03, 0x09, 0x05, 0x08, 0x0A, 0x06, 0x07, 0x03, 0x0
5, 0x08, 0x0A, 0x06, 0x07, 0x03, 0x05,
 0x08, 0x0A, 0x06, 0x07, 0x0B, 0x0C, 0x03, 0x05, 0x08, 0x0
A, 0x06, 0x07, 0x03, 0x05, 0x08, 0x0A,
 0x06, 0x07, 0x03, 0x05, 0x08, 0x0A, 0x06, 0x07, 0x03, 0x0
5, 0x08, 0x0A, 0x06, 0x07, 0x03, 0x05,
 0x08, 0x0A, 0x06, 0x07, 0x03, 0x05, 0x08, 0x0A, 0x01, 0x0
1, 0x06, 0x07, 0x03, 0x05, 0x08, 0x0A,
 0x06, 0x07, 0x03, 0x05, 0x08, 0x0A, 0x06, 0x07, 0x0B, 0x0
C, 0x03, 0x05, 0x08, 0x0A, 0x06, 0x07,
 0x03, 0x05, 0x08, 0x0A, 0x06, 0x07, 0x03, 0x05, 0x08, 0x0
A, 0x06, 0x07, 0x03, 0x05, 0x08, 0x0A,
 0x06, 0x07, 0x03, 0x05, 0x08, 0x0A, 0x06, 0x07, 0x03, 0x0
5, 0x08, 0x0A, 0x06, 0x07, 0x03, 0x05,
 0x08, 0x0A, 0x0D, 0x06, 0x07, 0x03, 0x05, 0x08, 0x0A, 0x0
6, 0x07, 0x0B, 0x0C, 0x03, 0x05, 0x08,
 0x0A, 0x06, 0x07, 0x03, 0x05, 0x01, 0x01, 0x08, 0x0A, 0x0
6, 0x07, 0x03, 0x05, 0x08, 0x0A, 0x0E,
 0x06, 0x07, 0x03, 0x05, 0x08, 0x0A, 0x06, 0x07, 0x03, 0x0
5, 0x08, 0x0A, 0x06, 0x07, 0x03, 0x05,
 0x08, 0x0A, 0x06, 0x07, 0x03, 0x05, 0x08, 0x0A, 0x06, 0x0
7, 0x03, 0x05, 0x08, 0x0A, 0x06, 0x07,
 0x0B, 0x0C, 0x00, 0x00
 };
unsigned int dword_341A4[65] = {
 0x00000091, 0x00000030, 0x00000038, 0x0000009A, 0x00000036, 0
x00000023, 0x0000004A, 0x0000002A,
 0x0000002D, 0x00000094, 0x00000024, 0x00000036, 0x00000018, 0
x0000002D, 0x00000036, 0x00000020,
 0x00000033, 0x00000094, 0x00000038, 0x0000009A, 0x00000162, 0
x00000023, 0x000000AE, 0x0000002A,
 0x0000000F, 0x00000030, 0x0000004A, 0x0000009A, 0x00000036, 0
x00000033, 0x0000004A, 0x0000002A,
 0x00000041, 0x00000030, 0x00000038, 0x0000009A, 0x00000036, 0
x00000023, 0x0000004A, 0x0000008E,
 0x0000005F, 0x00000030, 0x00000038, 0x0000004A, 0x00000036, 0
x00000023, 0x0000002C, 0x0000002A,
 0x00000091, 0x00000044, 0x00000038, 0x0000000F, 0x00000036, 0
x00000023, 0x0000004A, 0x0000002A,
 0x00000091, 0x00000030, 0x00000060, 0x0000009A, 0x0000009A, 0
x00000023, 0x0000004A, 0x0000002A,
 0x00000000
};
 unsigned long qword_342A8[8] = {
 0x000000000000E51E, 0x0000000000009DE7, 0x00000000000137F
6, 0x000000000000BEBA,
 0x00000000000101A2, 0x00000000000092E8, 0x000000000000920
4, 0x000000000000EF22
 };
 char *v3 = "12345678";
 v7 = 0;
 v6 = 0;
 v5 = 0;
 v4 = 0LL;
 for ( i = 0; i < 418; ++i ) {
 switch (byte_34000[i]) {
 case 1u:
v4 ^= 0x51uLL;
 goto LABEL_19;
 case 2u:
 dword_341A4[v7] *= 2;
 goto LABEL_19;
 case 3u:
 v6 = *v3;
 goto LABEL_19;
 case 5u:
 v4 += (unsigned int) (v6 * dword_341A4[v7]); ////在
这里将值进行输出
 printf("x%c * %d + ", v6, dword_341A4[v7]);
 goto LABEL_19;
 case 6u:
 ++v7;
 goto LABEL_19;
 case 7u:
 ++v3;
 goto LABEL_19;
 case 8u:
 ++v4;
 goto LABEL_19;
 case 9u:
 dword_341A4[v7] += 12;
 goto LABEL_19;
 case 0xAu:
 --v4;
 goto LABEL_19;
 case 0xBu:
 v0 = v5++;
 printf("= %d\n", qword_342A8[v0]); //将最终比较的
数据进行输出
 break;
 //return 0;
 case 0xCu:
 v3 -= 8;
 goto LABEL_19;
 case 0xDu:
 dword_341A4[v7] ^= 0x20u;
 goto LABEL_19;
 case 0xEu:
 dword_341A4[v7] -= 3;
 goto LABEL_19;
 default:
 goto LABEL_19;
 LABEL_19:
 break;
 }

 }
 }
}
//跑起来后,会输出如下形式,8 元一次方程:
x1 * 145 + x2 * 48 + x3 * 112 + x4 * 154 + x5 * 54 + x6 * 47 + x7 * 7
4 + x8 * 42 = 58654
x1 * 90 + x2 * 148 + x3 * 36 + x4 * 54 + x5 * 24 + x6 * 45 + x7 * 54 
+ x8 * 32 = 40423
x1 * 51 + x2 * 145 + x3 * 56 + x4 * 186 + x5 * 354 + x6 * 35 + x7 * 1
74 + x8 * 42 = 79862
x1 * 47 + x2 * 48 + x3 * 74 + x4 * 154 + x5 * 54 + x6 * 51 + x7 * 74 
+ x8 * 42 = 48826
x1 * 65 + x2 * 48 + x3 * 112 + x4 * 154 + x5 * 54 + x6 * 47 + x7 * 74
+ x8 * 142 = 65954
x1 * 95 + x2 * 48 + x3 * 56 + x4 * 74 + x5 * 54 + x6 * 35 + x7 * 44 +
x8 * 42 = 37608
x1 * 145 + x2 * 68 + x3 * 56 + x4 * 15 + x5 * 54 + x6 * 35 + x7 * 74 
+ x8 * 42 = 37380
x1 * 145 + x2 * 48 + x3 * 96 + x4 * 154 + x5 * 154 + x6 * 35 + x7 * 7
4 + x8 * 42 = 61218

z3直接解

from z3 import *
import hashlib
def hash_md5(data):
 hash=hashlib.md5()
 hash.update(bytes(data,encoding='utf-8'))
 return hash.hexdigest()
x1 = Int('x1')
x2 = Int('x2')
x3 = Int('x3')
x4 = Int('x4')
x5 = Int('x5')
x6 = Int('x6')
x7 = Int('x7')
x8 = Int('x8')
s = Solver()

s.add(x1 * 145 + x2 * 48 + x3 * 112 + x4 * 154 + x5 * 54 + x6 * 47 + 
x7 * 74 + x8 * 42 == 58654)
s.add(x1 * 90 + x2 * 148 + x3 * 36 + x4 * 54 + x5 * 24 + x6 * 45 + x7
* 54 + x8 * 32 == 40423)
s.add(x1 * 51 + x2 * 145 + x3 * 56 + x4 * 186 + x5 * 354 + x6 * 35 + 
x7 * 174 + x8 * 42 == 79862)
s.add(x1 * 47 + x2 * 48 + x3 * 74 + x4 * 154 + x5 * 54 + x6 * 51 + x7
* 74 + x8 * 42 == 48826)
s.add(x1 * 65 + x2 * 48 + x3 * 112 + x4 * 154 + x5 * 54 + x6 * 47 + x
7 * 74 + x8 * 142 == 65954)
s.add(x1 * 95 + x2 * 48 + x3 * 56 + x4 * 74 + x5 * 54 + x6 * 35 + x7 
* 44 + x8 * 42 == 37608)
s.add(x1 * 145 + x2 * 68 + x3 * 56 + x4 * 15 + x5 * 54 + x6 * 35 + x7
* 74 + x8 * 42 == 37380)
s.add(x1 * 145 + x2 * 48 + x3 * 96 + x4 * 154 + x5 * 154 + x6 * 35 + 
x7 * 74 + x8 * 42 == 61218)
if (s.check() == sat):
 model = s.model()
 print(model)
 flag=""
 for i in range(1, 9):
 if (model[eval("x" + str(i))] != None):
 flag += chr(model[eval("x" + str(i))].as_long().real)
 else:
 flag += " "
 print("HL{" + hash_md5(flag) + "}")

app 的正确输入:AZaz09@}
最终答案:HL{96233a87c59bf7f0aa2ed16d9bc2e07a}

服务器

1. 请对所给服务器检材进行分析,请 写 出 管 理 员 安 装“mdadm-4.1-9.el7_9.x86_64”的时间?(答案格式:18:18:18)

13:13:01

使用命令搜索

rpm可以提供包的名称、版本、发布信息、安装日期、大小、构建日期、构建主机、安装后的大小、来源RPM、许可证、URL、摘要和描述等信息。

rpm -qi mdadm 

image-20240426151736184

Install Data就是安装时间 01:13:01 PM CST 是下午的1点13分1秒 换成24小时制就是13:13:01

2. 请对所给服务器检材进行分析,请写出宝塔默认建站的目录是什么?(答案格式:/abc/def)

/data

image-20240424231441889

3.请对所给服务器检材进行分析,请写出ip为192.168.157.1的机器登陆失败的时间是什么时候?(答案格式:xxxx-xx-xx xx:xx:xx)

2020-10-09 16:47:29

image-20240426152509355

4.请对所给服务器检材进行分析,写出网站的数据库root帐号密码?(答案格式:xxxx)

hl@7001

网站数据库的root账号密码 其实首先应该看config/database.php文件 我们从服务器分析出来的zip格式的压缩包中可以找到一个shopxo.zip 解压之后看起来很像网站源码的格式 但是会发现config文件夹下并没有database.php这个文件 需要另找出路

image-20240426153220162

我们发现服务器部分的附件除了给了server4.E01 之外还给了server1 server2 server3三个文件 看起来很像raid重组 直接使用火眼的raid重组工具

先查看raid信息

image-20240426153554128

image-20240426153602558

在使用raid重组成逻辑盘 条带大小根据前面的raid信息改为1024 再点击生成文件

image-20240426153737509

得到重组之后的镜像 然后使用UFS Explorer导出真正的磁盘镜像 导出为1.dsk

image-20240426154527051

image-20240426154554774

使用给出的server4.E01和导出的1.dsk两个磁盘进行仿真 将server4.E01作为系统盘

仿真后 查看磁盘使用情况 看到这块磁盘已经存在了

lsblk

image-20240426155051131

还需要在挂载上 这块磁盘其实就是/data分区

mount /dev/sdb /data

成功挂载

image-20240426155148676

此时的/data/2023.cn/config/文件夹下就有database.php了 成功查看到用户名和密码

image-20240426155257652

5. 请对所给服务器检材进行分析,请分析网站后台管理员帐号的加密方式(答案格式:xx($xx.xxx($xxx))

md5($salt.trim($pwd))

直接在源码里面搜$pwd

image-20240424232724073

6. 请对所给服务器检材进行分析,网站首页友情链接中的”弘连网络“的更新时间是什么时候?(答案格式:xxxx-xx-xx xx:xx:xx)

2020-07-09 13:46:17

解决xshell和xftp连接问题

在仿真镜像后 我们会发现无法正常连接xshell和xftp 这篇文章可以解决

centos服务器拒绝ssh连接问题

查看hosts.allow和hosts.deny两个文件 将里面最后一行的内容直接注释就可以正常连接xshell和xftp

image-20240426162853579

解决这个问题之后 我们直接连上xftp 将网站源码保存到本地 然后使用FileLocator搜索弘连关键字

image-20240426164333588

7. 请对所给服务器检材进行分析,网站后台管理页面入口文件名是什么?(答案格式:xxx.php

4008003721.php

查看网站操作日志 看到将admin.php文件重命名为了4008003721.php

image-20240426165026735

为了验证一下这个结果 我们需要重构网站一下

我们在火眼的分析结果中看到存在docker容器 并且是mysql的容器 同时使用netstat -lnpt命令查看端口使用情况看到本地mysql端口是3306 但是database.php中写的mysql服务端口是3307 说明这个网站的数据库在docker容器中 而不是服务器本机中

image-20240426165908311

image-20240426165937577

image-20240426152750756

我们在挂载上raid重组盘之后 就解决了宝塔面板中没有网站源码的问题 下一步直接启动docker容器中的mysql服务即可

docker ps -a 
docker start 8fbd1968d75e

image-20240426170118160

然后修改我们本地hosts文件 使用火绒就行 在其中添加

192.168.24.133 www.hl2023.cn

赋予网站源码全部权限

chmod 777 -R 2023.cn

image-20240426170337405

就可以访问网站了

image-20240426170411630

在访问前面找到的后台管理页面 成功访问 说明这个页面就是后台管理页面

image-20240426170459010

后台密码绕过

顺便说一下 怎么绕过后台登陆密码 前面我们也知道了后台登陆密码的加密方式是带盐值的md5加密 我们直接修改网站源码 将加密方式改为直接md5加密

image-20240426171324931

使用cmd5网站 得到123456的md5加密值

image-20240426171428611

在docker中进入mysql服务 修改admin的密码为123456的md5加密值

image-20240426171456404

访问后台管理页面 使用admin/123456成功登陆

image-20240426171726286

8.请对所给服务器检材进行分析,网站数据库备份文件的sha256的值是多少?(答案格式:a656ac5f9e9d3bc2915aec31a5dfd0bd3bd3ef1ac497016dafae43669d7d6d22不区分大小写

9dede75e455a7c4c5cc4b61e41570adf82af25251c5fd8456a637add864b0af0

在宝塔中看到数据库存在备份文件

image-20240426165144979

从火眼分析中找这个文件 导出计算sha256

image-20240426165225224

image-20240426165250217

9.请对所给服务器检材进行分析,网站数据库备份文件的解压密码是多少?(答案格式:xxxxxxx区分大小写)

22Ga#ce3ZBHV&Fr59fE#

服务器文件系统中root文件夹下有个.w0rd.txt文档 是解压密码字典 提出来

image-20240424234407538

放passwarekit里面字典爆破

image-20240424234702221

10. 请对所给服务器检材进行分析,商城中“弘连火眼手机分析专用机MT510”商品的原价是多少?(只填写数字,精确到小数点后2位:9999.99)

1398000.00

直接在网站中搜不到

image-20240426170707259

用我们上面解压出的数据库备份文件 直接在宝塔中导入恢复

image-20240426170734703

image-20240426171110222

流量分析

1.请分析流量分析.pcapng文件,并回答入侵者的IP地址是?

192.168.85.130

最后拿到权限之后从这个ip上下载了文件 那么这个ip就是攻击者ip

image-20240426172226311

2.请分析流量分析.pcapng文件,并回答被入侵计算机中的cms软件版本是?(答案格式:1.1.1)

5.2.1

image-20240426172253849

3.请分析流量分析.pcapng文件,并回答被入侵计算机中的MySQL版本号是?(答案格式:1.1.1)

5.5.53

image-20240426172311686

4.请分析流量分析.pcapng文件,并回答被入侵计算机中的MySQLroot账号密码是?

admin@12345

image-20240426172333674

image-20240426172525606

5.请分析流量分析.pcapng文件,并回答入侵者利用数据库管理工具创建了一个文件,该文件名为?

06b8dcf11e2f7adf7ea2999d235b8d84.php

image-20240424212945089

image-20240424212952731

6.请分析流量分析.pcapng文件,并回答被入侵计算机中PHP环境禁用了几个函数?

10个

直接搜disable_function

image-20240424210620482

一共10个

image-20240424210642713

7.请分析流量分析.pcapng文件,并回答入侵者提权后,执行的第1条命令是?

image-20240424210144330

dir

8.请分析流量分析.pcapng文件,并回答被入侵计算机开机时间是?

2019/6/13, 18:50:33

被入侵后 在里面执行了systeminfo命令 可以看到上一次计算机的启动时间

image-20240424211721791

9.请分析流量分析.pcapng文件,并回答被入侵计算机桌面上的文件中flag是?(答案格式:abcdef123456789)

直接追踪tcp流 到第1364流

image-20240426172559868

10.请分析流量分析.pcapng文件,并回答图片文件中的flag是? (答案格式:abcdef123456789)

http导出可以得到一个flag.png 末尾有压缩包

image-20240426172615443

image-20240426172624131

image-20240426172634398