第二届长安杯刷题记录

1.检材 1 的操作系统版本是()
A. CentOS release 6.5 (Final)
B. Ubuntu 16.04.3 LTS
C. Debian GNU/Linux 7.8 (wheezy)
D. CentOS Linux release 7.6.1810 (Core)

A

2.检材 1 中,操作系统的内核版本是()

3.10.0-957.el7.x86_64 
[root@localhost ~]# uname -a
Linux localhost.localdomain 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

3.检材 1 中磁盘包含一个 LVM 逻辑卷,该 LVM 开始的逻辑区块地址(LBA)是()

2099200
[root@localhost ~]# fdisk -l

Disk /dev/sda: 42.9 GB, 42949672960 bytes, 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000a3996

Device Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 83886079 40893440 8e Linux LVM

4.检材 1 中网站“www.kkzjc.com”对应的 Web 服务对外开放的端口是()

32000
[root@localhost ~]# netstat -anpt
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:30000           0.0.0.0:*               LISTEN      5806/nginx: master  
tcp        0      0 0.0.0.0:31000           0.0.0.0:*               LISTEN      5806/nginx: master  
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      6152/master         
tcp        0      0 0.0.0.0:7001            0.0.0.0:*               LISTEN      5796/sshd           
tcp        0      0 0.0.0.0:32000           0.0.0.0:*               LISTEN      5806/nginx: master  
tcp        0     36 192.168.68.139:7001     192.168.68.1:60805      ESTABLISHED 15541/sshd: root@pt 
tcp6       0      0 ::1:25                  :::*                    LISTEN      6152/master         
tcp6       0      0 :::7001                 :::*                    LISTEN      5796/sshd  

但是没有办法确定是哪个,查看一下history,发现又编辑nginx配置文件
cat /etc/nginx/conf.d/www.kkzjc.com查看一下配置文件

server {
    listen       32000;
    server_name  www.kkzjc.com;
    if ($host != 'www.kkzjc.com'){
       return 403;
    }

5.检材 1 所在的服务器共绑定了()个对外开放的域名

3

配置文件夹下有三个网站文件夹,因此是三个

6.检材 1 所在的服务器的原始 IP 地址是()

192.168.99.3

history中有docker的记录,或许在docker日志的里面可以看到访问的记录

service docker start
docker ps -a
docker start 08
docker logs 08

7.嫌疑人曾经远程登录过检材 1 所在的服务器,分析并找出其登录使用的 IP 地址是()(并使用该地
址解压检材 2)

192.168.99.222

last命令看一下
在这里插入图片描述8.检材 1 所在的服务器,其主要功能之一为反向代理。找出“www.kkzjc.com”转发的后台网站所使用
的 IP 地址是()

这里是引用

location / {
        proxy_pass   http://127.0.0.1:8091;
        index  index.html index.htm;
    }

这一段的配置文件显示了本服务经过了8091端口,netstat看一下端口,发现是docker,那我们就需要进入docker看一下
docker中的nginx.conf文件记录了以下信息,包含了该路径下的.conf文件

include /etc/nginx/conf.d/*.conf;

切换到目录下看一下

root@08f64376a2e3:/etc/nginx/conf.d# ls
hl.conf
location / {
        proxy_pass   http://192.168.1.176:80;
    }

9.嫌疑人曾经从题 7 的 IP 地址,通过 WEB 方式远程访问过网站,统计出检材 1 中该 IP 出现的次数为()

18

10.检材 2 的原始磁盘 SHA256 值为()

2D926D5E1CFE27553AE59B6152E038560D64E7837ECCAD30F2FBAD5052FABF37

11.检材 2 所在计算机的 OS 内部版本号是()

18363.1082

在这里插入图片描述12.检材 2 所在计算机最后一次正常关机的时间为()

2020-09-22 13:15:34

在这里插入图片描述

13.检材 2 中,VMware 程序的安装时间为()

2020-09-18 17:57:13

14.检材 2 中,Vmware.exe 程序总计启动过()次

8

在这里插入图片描述15.嫌疑人通过 Web 方式,从检材 2 访问检材 1 所在的服务器上的网站时,连接的目标端口是()

8091

在这里插入图片描述16.接 15 题,该端口上运行的进程的程序名称(Program name)为()

docker

17.嫌疑人从检材 2 上访问该网站时,所使用的域名为()

www.sdhj.com

18.检材 2 中,嫌疑人所使用的微信 ID 是()

wxid_06f01lnpavn722

检材二中并没有发现微信记录,但是题目有明确说明了检材二,所以或许存在检材嵌套的情况
在这里插入图片描述
找到手机备份,添加为新检材
在这里插入图片描述

发现微信记录

19.分析检材 2,嫌疑人为推广其网站,与广告位供应商沟通时使用的通联工具的名称为()

Telegram

在这里插入图片描述

20.分析检材 2,嫌疑人使用虚拟货币与供应商进行交易,该虚拟货币的名称是()

DOGE

21.上述交易中,对方的收款地址是()

DPBEgbwap7VW5HbNdGi9TyKJbqTLWYYkvf

在这里插入图片描述

22.上述交易中,嫌疑人和供应商的交易时间是()

2020/09/20 12:19:46

在这里插入图片描述

23.上述交易中,嫌疑人支付货币的数量为()

4000

24.检材 2 中,嫌疑人使用的虚拟机的虚拟磁盘被加密,其密码为()

zzzxxx

在这里插入图片描述

结合微信聊天记录,提示github上有解密方法
在这里插入图片描述
在浏览器找到一个很像的浏览记录
百度一下发现果然是
在这里插入图片描述

下载按照文档运行,破解虚拟机密码

在这里插入图片描述

25.检材 2 中,嫌疑人发送给广告商的邮件中的图片附件的 SHA256 值为()

c50a0e32867ccd06fffc50bc43c7bac8

手机聊天记录提示是邮箱发送
但是并没有邮箱的记录
聊天记录又提示可能保存在了嫌疑人的电脑上,我们先去找一找

在这里插入图片描述

在回收站里找到一个可疑文件,这么明显应该八九不离十

26.检材 2 中,嫌疑人给广告商发送广告图片邮件的发送时间是()(忽略邮件状态)

2020-09-20 12:53:00

检材宿主机和手机备份都没有邮件的信息,那么可能在虚拟机里
在虚拟机中移除加密,导出vmdk,添加为新检材,就可以被正常识别了
发现邮件发送记录,也验证了我们上一题的猜想
在这里插入图片描述

27.检材 2 中,嫌疑人的邮箱密码是()

honglian7001

28.检材 2 中,嫌疑人使用了()远程管理工具,登录了检材 1 所在的服务器

xshell

在这里插入图片描述

29.检材 2 中,嫌疑人使用上述工具连接服务器时,使用的登录密码为()

qwer1234!@#$

30.检材 3 的原始磁盘 SHA256 值为()
31.检材 3 所在的计算机的操作系统版本是()

A. Windows Server 2012
B. Windows Server 2008 R2
C. Windows Server 2008 HPC Edition
D. Windows Server 2019 LTSB

C

在这里插入图片描述

32.检材 3 中,部署的网站名称是()

card

在这里插入图片描述

33.检材 3 中,部署的网站对应的网站根目录是()

C:\inetpub\wwwroot\v7w

在这里插入图片描述

34.检材 3 中,部署的网站绑定的端口是()

80

35.检材 3 中,具备登陆功能的代码页,对应的文件名为()

dllogin.aspx

在这里插入图片描述

在检材三的浏览器中发现可疑浏览记录,直接在浏览器里访问一下

在这里插入图片描述

爆搜以后发现答案

在这里插入图片描述

36.检材 3 中,请对网站代码进行分析,网站登录过程中,代码中对输入的明文密码作了追加()字符串处理

OvO

在这里插入图片描述

37.检材 3 中,请对网站代码进行分析,网站登录过程中,代码中调用的动态扩展库文件的完整名称为

App_Web_dllogin.aspx.7d7c2f33.dll

在这里插入图片描述

38.检材 3 中,网站登录过程中,后台接收到明文密码后进行加密处理,首先使用的算法是 Encryption 中的()函数

AES

在这里插入图片描述

39.检材 3 中,分析该网站连接的数据库地址为()并使用该地址解压检材 4

192.168.1.174

见40题

40.检材 3 中,网站连接数据库使用的密码为()

c4f2737e88
在这里插入图片描述

数据库密码记录在DBmanager.dll

这是一个解码函数,本地c#环境都有,运行即可

PS C:\Users\25744\Desktop> Add-Type -Path .\DBManager.dll
PS C:\Users\25744\Desktop> [DBManager.Encryption]::AESDecrypt("Mcyj19i/VubvqSM21YPjWnnGzk8G/GG6x9+qwdcOJd9bTEyprEOxs8TD9Ma1Lz1Ct72xlK/g8DDRAQ+X0GtJ8w==", "HL", "forensix");
server=192.168.1.174,1433;uid=sa;pwd=c4f2737e88;database=v7sq3;
41.检材 3 中,网站连接数据库服务器的端口是()

1433

42.检材 4 的原始磁盘 SHA256 值为()

E5E548CCAECD02608A0E053A5C7DCDBFBDD4BE5B0E743EB9DC8E318C369BEBC8

43.重构该网站,分析嫌疑用户的推广链接中参数里包含的 ID 是()

abe6d2ee630379c3

简单分析一下历史命令,发现在进行mssql-server的安装,最后应该是使用docker解决的

除此之外这这台服务器上也没有发现其他的服务

经过初步判断,检材4应该是专门存放数据地址的

因此我们要做的就是启动数据库服务

ifconfig无法使用,没有安装net-tool,ip addr后结果如图所示

在这里插入图片描述

查看网卡配置以后,发现网卡的ip分配策略是dhcp,但是不知道为什么没有给网卡自动分配地址

但是这不重要,因为如果服务器的作用是数据库的话,我们还是要去手动更改ip

vi /etc/sysconfig/network-scripts/ifcfg-ens33

在这里插入图片描述
更改网络配置,servcie network restart重启网络服务,成功更改网络配置
这里我们也发现了为什么没有分配ip地址,因为onboot的值为no,意味着我们需要手动起网卡
观察history记录,发现docker里面运行了mssql的服务,那么接下来启动docker就能启动网站
启动docker后重启网站,访问后台页面,重构成功
在这里插入图片描述

接下来就是最耗脑细胞的一步,网站密码绕过
首先我们要链接数据库,使用之前的数据库信息成功链接
在这里插入图片描述

数据库链接之后,就去看管理登录的代码

在这里插入图片描述

	private void oCmd()
	{
		try
		{
			string text = base.Request.Form["tuser"];
			string text2 = base.Request.Form["tpwd"];
			if (!string.IsNullOrEmpty(text) && !string.IsNullOrEmpty(text2))
			{
				text2 = Encryption.AESEncrypt(text2, "forensix", "HL");
				if (new DSys().IpIsBlock(this.Context.Request.UserHostAddress, 3))
				{
					this.Context.Response.End();
				}
				text2 = FormsAuthentication.HashPasswordForStoringInConfigFile(text2, "MD5");
				string text3 = this.Context.Request.Url.ToString();
				text3 = XSys.FormatWeb(text3);
				WDUser wduser = new WDUser();
				text = text.Trim();
				text2 = text2.Trim();
				DataTable dataTable = wduser.DUserLogin(text3, text, text2);
				if (dataTable == null)
				{
					this.JSCODE = XSys.JS_Alert("用户名或密码错误");
				}
				else if (dataTable.Rows[0]["DU_State"].ToString() == "1")
				{
					this.JSCODE = XSys.JS_Alert("用户名或密码错误.");
				}
				else
				{
					int num = int.Parse(dataTable.Rows[0]["DU_Id"].ToString());
					this.Session["DSESSION"] = num;
					string userHostAddress = this.Context.Request.UserHostAddress;
					QQWry qqwry = new QQWry(this.Context.Server.MapPath("/res/file/qqwry.dat"), userHostAddress);
					new WXt().LoginIpInsert(1001, num, userHostAddress, qqwry.Address);
					base.Response.Redirect("/d", false);
				}
			}
		}
		catch
		{
		}
	}

这段代码是一个oCMD的私有类

首先,接受tuser以及tpwd两个传参,根据前面的题目可以得知,tpwd在传入后进行了一次拼接,例如传入’123456',结果就是'123456OvO'

!string.IsNullOrEmpty(text) && !string.IsNullOrEmpty(text2)是一次非空判断,非空则进入循环

text2 = Encryption.AESEncrypt(text2, "forensix", "HL")首先进行一次AES加密,Encryption.AESEncrypt是在DBManager中的自定义函数,具体功能为实现AES加密,因本地环境可以运行,故不赘述

PS C:\Users\25744\Desktop> [DBManager.Encryption]::AESEncrypt('123OvO', "forensix", "HL");
uAw7CyDoDeesLHY9KBzm7Q==

本地调用,输出AES加密结果

if (new DSys().IpIsBlock(this.Context.Request.UserHostAddress, 3))
				{
					this.Context.Response.End();
				}

本段代码进行ip检查,检查是否在黑名单中,因可以正常访问故不深究

text2 = FormsAuthentication.HashPasswordForStoringInConfigFile(text2, "MD5")是对text2变量进行一次MD5加密

加密后结果为b16bf9b7cf6c1c77452ca96a3126a3dc

在这里插入图片描述

WDUser wduser = new WDUser();
				text = text.Trim();
				text2 = text2.Trim();
				DataTable dataTable = wduser.DUserLogin(text3, text, text2);
				if (dataTable == null)
				{
					this.JSCODE = XSys.JS_Alert("用户名或密码错误");
				}
				else if (dataTable.Rows[0]["DU_State"].ToString() == "1")
				{
					this.JSCODE = XSys.JS_Alert("用户名或密码错误.");
				}

首先DataTable dataTable = wduser.DUserLogin(text3, text, text2)调用了WBus.dll文件,反编译该文件,追一下wduser.DUserLogin函数

public DataTable DUserLogin(string **domain**, string **ln**, string **pwd**)
    {
      DataTable result;
      try
      {
        DBcon dbcon = new DBcon();
        SqlParameter[] array = new SqlParameter[]
        {
          new SqlParameter("@Domain", SqlDbType.VarChar, 50),
          new SqlParameter("@Ln", SqlDbType.VarChar, 50),
          new SqlParameter("@Pwd", SqlDbType.VarChar, 50)
        };
        array[0].Value = **domain**;
        array[1].Value = **ln**;
        array[2].Value = **pwd**;
        DataTable dataTable = dbcon.DB_ExecuteProcDT("PD_UserLogin", array);
        if (dataTable.Rows.Count == 0)
        {
          result = null;
        }
        else
        {
          result = dataTable;
        }
      }
      catch (Exception ex)
      {
        DSys dsys = new DSys();
        dsys.ErrorInsert(11, MethodBase.GetCurrentMethod().DeclaringType.FullName, MethodBase.GetCurrentMethod().Name, ex.ToString());
        result = null;
      }
      return result;
    }

本段函数首先对数据库进行了连接

DataTable dataTable = dbcon.DB_ExecuteProcDT("PD_UserLogin", array);调用了保存在数据空中的PD_UserLogin

打开数据库,跳转该函数

在这里插入图片描述

---用户登录
ALTER PROC PD_UserLogin
@Domain	VARCHAR(50),
@Ln		VARCHAR(50),
@Pwd	VARCHAR(50)
AS
DECLARE @OK	INT,@Did INT
SET @OK=8
SET @Did=0
SELECT @OK=DW_Type,@Did=DW_DU_ID FROM TD_Webs WHERE DW_Web=@Domain
IF(@OK=0)
BEGIN
	SELECT DU_Id,DU_State FROM TD_User 
	WHERE DU_Id=@Did AND DU_Ln=@Ln AND DU_Pwd=@Pwd AND DU_ISDel=0
END
IF(@OK=1)
BEGIN
	SELECT DU_Id,DU_State FROM TD_User 
	WHERE DU_Ln=@Ln AND DU_Pwd=@Pwd AND DU_ISDel=0
END

可以先根据用户表来猜测变量的作用

Domain是域名,Ln是用户,Pwd是密码

SELECT @OK=DW_Type,@Did=DW_DU_ID FROM TD_Webs WHERE DW_Web=@Domain从TD_Webs中选取DW_Web=@Domain并对@OK以及@Did进行赋值

IF(@OK=0)
BEGIN
	SELECT DU_Id,DU_State FROM TD_User 
	WHERE DU_Id=@Did AND DU_Ln=@Ln AND DU_Pwd=@Pwd AND DU_ISDel=0
END
IF(@OK=1)
BEGIN
	SELECT DU_Id,DU_State FROM TD_User 
	WHERE DU_Ln=@Ln AND DU_Pwd=@Pwd AND DU_ISDel=0
END

这是一个登录判断,如果 @OK 的值为 0,表示 DW_Type 为 0,此时通过查询 TD_User 表,根据用户的 DU_IdDU_LnDU_Pwd 以及 DU_ISDel 进行验证。如果 @OK 的值为 1,表示 DW_Type 为 1,此时通过查询 TD_User 表,根据用户的 DU_LnDU_Pwd 以及 DU_ISDel 进行验证。

整理一下以上情报,可以得到结论:

  • 用户名和密码要与TD_User表一致

  • TD_Webs表中要更改域名

  • TD_Webs中的DW_DU_Id要与TD_UserDU_Id保持一致

    在这里插入图片描述

在这里插入图片描述

更改数据库,重启服务,使用更改后的账号密码,成功访问

在这里插入图片描述

在这里插入图片描述

44.重构该网站,该网站后台的代理用户数量为()

26

45.重构该网站,该网站注册用户中共有过()个代理(包含删除的数据)

32

即让我们统计所有曾经注册过的用户数量

在这里插入图片描述

开发者工具可以看到调用的dll库

反编译一下

在这里插入图片描述

跳转之后找到对应数据表

SELECT count(*) FROM [dbo].[TU_User]

46.重构该网站,对补发记录进行统计,统计 2019 年 10 月 1 日后补发成功的金额总值()

138408.0000

在这里插入图片描述
类似的方法,找到补发记录所用数据表

在这里插入图片描述

只有当YY1T_CState的值是100的时候,才显示补发成功

sql语句就是SELECT SUM(YY1T_Money) FROM VY_TestLog WHERE YY1T_CState = N'100' AND [YY1T_CDate] BETWEEN N'2019-10-01 00:00:00' AND N'2023-12-21 00:00:00'

47.检材 4 中,对“TX_IpLog”表进行分析,所有在“武汉市”登录的次数为()

2829

SELECT count(*) FROM [dbo].[TX_IpLog] WHERE [XIL_Info] LIKE '%武汉%'

48.重构该网站,该嫌疑人下属代理“liyun10”账户下的余额有()元

1066449

在这里插入图片描述

49.接上一题,该用户的推广 ID 是()

d0fdd7a9a010d37e

在这里插入图片描述

50.接上一题,该代理商户的最后一次登陆时间是()

2016/9/5 17:09:13

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值