斟茶王者常规赛-数据研判专项

WriteUp 4个月前 admin
87 0 0

背景资料

案例背景:近日,枫县公安局与工商部门联手,捣毁一涉及上千人的大型网络传销组织,该组织于2015年成立好得快科技有限公司,打着销售保健品的旗号,建立会员管理系统,按照制定的奖金制度发展会员,从事传销和变相传销活动,在案件侦办过程中,执法人员从镜像文件中挖掘到了多条有价值的线索。

比赛面向正式公安民警,检材恕不提供,民警可通过以下链接开通使用

无糖浏览器-您身边的办案助手,下载地址:https://browser-prod.nosugartech.com/start?token=6p0lctqc7ihul67c1em0u7alxy7wm9pk8e2p5muezlkgkwdmjxkms21pw4z0yyoa,下载后注册使用邀请码【AS2I20CT71WC】可快速开通完整权限。

题目

下载镜像文件并提取出历史执行记录第一行的完整命令

yum install -y wget && wget -O install.sh http://www.aapanel.com/script/install_6.0_en.sh && bash install.sh aapanel

仿真history,或介质取证软件查看即可

历史命令文件储存位置/root/.bash_history

斟茶王者常规赛-数据研判专项斟茶王者常规赛-数据研判专项

从所有已存在的日志中,获取登录失败且次数最多的IP

83.191.103.166

仿真last -f  /var/log/btmp,或介质取证软件查看即可

登录失败日志文件储存位置/var/log/btmp

斟茶王者常规赛-数据研判专项斟茶王者常规赛-数据研判专项

获取宝塔面板操作日志的第一条日志的登录IP

104.28.247.69

仿真,或介质取证软件查看即可

文件储存位置/www/server/panel/data/default.db

bt5 重置密码

bt14 查看默认信息

斟茶王者常规赛-数据研判专项

登录进去直接看安全-面板操作日志

斟茶王者常规赛-数据研判专项斟茶王者常规赛-数据研判专项

宝塔面板中传销网站绑定的域名是

testing-2th.ns

仿真,或介质取证软件查看即可

文件储存位置/www/server/panel/data/default.db

斟茶王者常规赛-数据研判专项斟茶王者常规赛-数据研判专项

找到短信发送接口的access_key_id

LTAI4FpdJutfgLTMke5LKa5v

将/www/wwwroot/testing-2th.ns导出使用vscode搜索access_key_id

在tempstatic_cachesshop_config.php

斟茶王者常规赛-数据研判专项

仿真grep -rn ‘/www/wwwroot/testing-2th.ns’ -e ‘access_key_id’

要在 Linux 的 /www/wwwroot/testing-2th.ns 目录下搜索文件内容包含 access_key_id 的命令,你可以使用 grep 命令。请在终端中运行以下命令:

grep -rn '/www/wwwroot/testing-2th.ns' -e 'access_key_id'

这个命令的参数解释如下:

-r:递归搜索目录及其子目录。

-n:显示匹配行的行号。

'/www/wwwroot/testing-2th.ns':要搜索的目录路径。

-e 'access_key_id':要搜索的字符串(在这里是 access_key_id)。

这个命令将返回所有包含 access_key_id 的文件列表。

斟茶王者常规赛-数据研判专项

网站源码目录下存在隐藏文本,请写出该文本的正确值

6bb4837eb74329105ee4568dda7dc67ed2ca2ad9

linux文件系统前面加个.,在文件系统中则不可见,可以使用ls -la查看

我这用了finalshell直接看到文件了

斟茶王者常规赛-数据研判专项斟茶王者常规赛-数据研判专项

看着像base64,解码一下

斟茶王者常规赛-数据研判专项

仿真运行站点,用最高管理权限登陆PC后台,获取微信接口的key值。

96e79218965eb72c92a549dd5a330112

启动mysql

斟茶王者常规赛-数据研判专项

修改本地hosts 添加仿真服务器ip+域名

斟茶王者常规赛-数据研判专项斟茶王者常规赛-数据研判专项

后缀直接/admin,访问下看看

斟茶王者常规赛-数据研判专项

navicat连接数据库,用户名密码宝塔都有

看下账号密码,看起来是加了盐的值

斟茶王者常规赛-数据研判专项斟茶王者常规赛-数据研判专项

admin1密码cmd跑出来是123456

最高权限的是admin,重写个密码,把admin1的密码和盐写到admin

登录

斟茶王者常规赛-数据研判专项

找到在线客服APPKEY。

23364375

斟茶王者常规赛-数据研判专项

请通过恢复镜像中被删除的数据,找到被删除的压缩包解压密码,已知嫌疑人在/tmp目录下进行删除的。

【答案格式:M…0…】

ML0VNljo

注:解题过程中推荐使用工具:DiskGenius

DiskGenius恢复文件

斟茶王者常规赛-数据研判专项

对解压后的hdk.sql文件进行分析,所有管理员在国内登录次数最多的IP是?

183.56.233.182

有现成mysql环境了,直接新建数据库,导入sql分析

SELECT ip, COUNT(*) as count
FROM admin_log
GROUP BY ip
ORDER BY count DESC;

斟茶王者常规赛-数据研判专项

通过重明情报分析平台,找到好得快科技有限公司的技术总监的手机号归属地为( )?

【答案格式:巴啦市】

北京市

斟茶王者常规赛-数据研判专项斟茶王者常规赛-数据研判专项

分析SQL附件,发现该传销平台使用的是哪个公司的第三方客服服务?( )

【答案格式:XXXXXXXX有限公司】

成都美洽网络科技有限公司

斟茶王者常规赛-数据研判专项斟茶王者常规赛-数据研判专项

可用于向该公司调证的客服id为?

【答案格式:eid=b5a5….l5bala5】

eid=c4f45c3249d9246****69da042df95f9

同上

斟茶王者常规赛-数据研判专项

根据配置表信息我们得知该传销平台还使用了“短信宝”,请找到他的登录密码( )?

【答案格式(填写英文字符)bala….555】

haodekuai123

斟茶王者常规赛-数据研判专项

根据参与传销人员的最后登录IP,发现该平台会员主要分布在哪个地区?

【答案格式:巴啦省】

河北省

SELECT login_ip, COUNT(*) as count
FROM user_log
GROUP BY login_ip
ORDER BY count DESC;

斟茶王者常规赛-数据研判专项斟茶王者常规赛-数据研判专项

会员李晓晓共亏损多少金额(暂不考虑购买商品的实际货值)?

【答案保留小数点后两位】

14934.78

计算亏损金额,首先明确计算方式,思路是进入平台金额减去流出平台的部分

根据config描述:本商场当前仅开通支付宝充值、微信提现功能。在平台下单时,可选择使用支付宝充值后的用户账户余额进行支付,也可选择使用登录微信号直接购物,无需微信充值。后续如若开通微信充值功能将会在平台进行公告,尽请期待。

进入平台金额:微信购物+支付宝充值

流出平台金额:余额购物扣除+微信提现(实际金额)

筛选李晓晓uid=627的balance_log,按照上述几类统计数据即可,如下图。最下面一行为合计数据

20214.71+11380-5402.43-11257.5=14934.78

斟茶王者常规赛-数据研判专项

成为该平台最高等级会员的门槛费是( )?

【答案格式(填写英文字符)555】

config表

5888

斟茶王者常规赛-数据研判专项

李晓晓通过推荐下级行为所获得的返佣总金额是(  )?

【答案保留小数点后两位,遵循四舍五入规则】

24681.52

SELECT SUM(`amount`as total_amount
FROM `hdk`.`balance_log`
WHERE `uid` = '627' AND `desc` LIKE '%下级%';

斟茶王者常规赛-数据研判专项

该平台不同层级会员直推下级升级为初、中、高获得该次升级订单金额的多少作为直推奖励?

【答案格式(英文字符)x%;x%;x%】

5%;10%;15%

config表

斟茶王者常规赛-数据研判专项

据平台活动,平台高级会员的团队若在“营养品”类商品的销售业绩达到100万元以上,则作为团长的高级会员可获得当月该类商品销售业绩2%的团队奖励。请问,依据该平台2023年10月的销售情况,当月即将发放的团队奖励最高金额是多少? 

【答案格式(保留小数点后两位,遵循四舍五入规则):55….5.56】

26556.59

首先提到高级会员则`level_id` = ‘3’

斟茶王者常规赛-数据研判专项

这里提到一个团队的概念,团队就是团长+团队员,即高级会员+他的直接和间接的下线,需计算他们的销售额

user表每个uid对应的pid为他的上线,可按照此进行递归列出所有下线

然后是销售额的明确,时间是2023年十月整个月即2023-10-01 0:00-2023-11-01 00:00,则order_time >= 1696089600  AND order_time < 1698768000

品类是“营养品”类,则 goods_id IN (4, 5, 6, 7, 8, 9, 10, 11)

斟茶王者常规赛-数据研判专项

销售额应当是实付的金额,则pay_amount

以上为对题目的拆解,涉及到递归,mysql 5.7不支持sql语句进行递归,所以可以选择编写python脚本分析

销售额涉及条件较多,所以我预先将order表进行处理

SELECT *
FROM `order`
WHERE order_time BETWEEN 1696089600 AND 1698768000 
AND goods_id IN (4567891011);

导出筛选后的结果至新建表order2(可以直接复制order表的结构)

然后使用如下脚本计算每个团队销售额

pip install pymysql
# -*- coding:utf-8 -*-
import pymysql

# 连接到MySQL数据库
connection = pymysql.connect(host='你的数据库地址',
                             user='你的数据库地址用户名',
                             password='你的数据库地址密码',
                             db='你的数据库')

# 创建一个游标
cursor = connection.cursor()

# 查询所有用户及其上级
cursor.execute("SELECT uid, pid FROM users")
users = cursor.fetchall()

# 构建一个字典,其中键是用户ID,值是包含该用户所有下级的列表
team_members = {}
for user in users:
    uid, pid = user
    if pid not in team_members:
        team_members[pid] = []
    team_members[pid].append(uid)

# 定义一个递归函数,用于计算uid的销售额以及其所有下线的销售额
def count_sales(uid):
    sales = 0
    # 查询uid的订单总额
    cursor.execute(f"SELECT SUM(pay_amount) FROM `order2` WHERE uid = '{uid}'")
    result = cursor.fetchone()
    if result and result[0]:
        sales += result[0]
    # 计算下线的销售额
    if uid in team_members:
        for member_uid in team_members[uid]:
            sales += count_sales(member_uid)
    return sales

# 计算UID团队的销售额并输出
for uid in team_members :
    team_sales = count_sales(uid)
    print(f"团队 {uid} 的销售额: {team_sales}")

# 关闭游标和数据库连接
cursor.close()
connection.close()

筛选高级团队的销售额*0.02计算即可

写在后面

本次题目主要是服务器取证,没有在服务器的环境埋坑,网站重构还原基本没有难点,考察点依然在数据分析的部分,需要明确分析思路再着手数据分析。以上仅为我个人参赛的一些题目复盘,官方复盘也会在今天同步进行,同时祝各位sir警察节节日快乐。

斟茶王者常规赛-数据研判专项



原文始发于微信公众号(数据取证杂谈):斟茶王者常规赛-数据研判专项

版权声明:admin 发表于 2024年1月5日 上午12:01。
转载请注明:斟茶王者常规赛-数据研判专项 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...