第一届创享杯 服务器部分题解 检材分析 多个文件组成,可能为集群或者RaiD阵列 只有server05 这个大的能解析,其他全部不能解析,考虑其他几个是raid阵列,raid阵列的特征是无法单独解
检材分析
只有server05 这个大的能解析,其他全部不能解析,考虑其他几个是raid阵列,raid阵列的特征是无法单独解析,容量相同。
登陆记录中这个uid是1000的还是比较扎眼的
对服务器各项内容进行检查
发现存在Mysql服务和apache服务,一个网站存在应该是没跑了
问网站域名的别名,查看apache配置文件,起仿真,进去查看。
在后面raid重组的时候再讲解如何仿真。可以先看后面raid重组这一块。
仿真起了之后,对整个文件系统进行检查,
ServerAdmin jackzhang@126.com PHP_admin_value open_basedir /var/shop:/tmp:/var/tmp:/proc:/data/www/default/kod ServerName www.shopx789.com ServerAlias www.xxshop123.com DocumentRoot /var/shop/public SetOutputFilter DEFLATE Options FollowSymLinks AllowOverride All Order Deny,Allow Require all granted DirectoryIndex index.php index.html index.htm ErrorLog /data/wwwlog/www.shopx.com/error.log CustomLog /data/wwwlog/www.shopx.com/access.log combined
可以看到ServerAlias是www.xxshop123.com,所以别名是www.xxshop123.com
在查看配置文件的过程中,发现网站的目录DocumentRoot /var/shop/public
[root@ZhangLi 1]# rpm -qi gcc-c++-4.8.5-39.el7.x86_64Name : gcc-c++Version : 4.8.5Release : 39.el7Architecture: x86_64Install Date: Sun 26 Apr 2020 10:21:31 AM CSTGroup : Development/LanguagesSize : 17265731License : GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSDSignature : RSA/SHA256, Fri 23 Aug 2019 05:24:16 AM CST, Key ID 24c6a8a7f4a80eb5Source RPM : gcc-4.8.5-39.el7.src.rpmBuild Date : Wed 07 Aug 2019 01:15:38 AM CSTBuild Host : x86-02.bsys.Centos.orgRelocations : (not relocatable)Packager : CentOS BuildSystem <Http://bugs.centos.org>Vendor : CentOSURL : http://gcc.gnu.orgSummary : C++ support for GCCDescription :This package adds C++ support to the GNU Compiler Collection.It includes support for most of the current C++ specification,including templates and exception handling.
因为根据我们的分析服务器应该是一个主盘server5作为系统盘,其他四个server1-4作为raid整列,有4块盘,有很多种阵列的可能。
将所有磁盘一起添加到仿真列表中,将系统盘放在第一块,
若不能识别系统类型,可以手动选择一个centos或者linux,仿真之后,它会自动把这些盘分成系统盘和数据盘,这就是顺序的重要性
直接仿真起,经过漫长的等待,进入到一个dracut的emergency shell
感觉有点像是除掉centos系统的内核级的shell,啥工具都没有,重启一下进rescue
进入一个类似恢复模式的内核
即可进系统
也可以修复一下磁盘,给最新内核进行重建initramfs文件,重启选择第一个即可进入原来的系统
查看磁盘信息,熟悉一下,这是美亚常考的点之一,这个raid题很像第三届美亚杯的风格,大家可以再研究一下这篇题解,也是写的很详细的
(7条消息) 2017第三届美亚杯全国电子数据取证大赛团队赛write up_奇乃正的博客-CSDN博客_美亚杯镜像文件
[root@ZhangLi ~]# fdisk -lDisk /dev/sdd: 1073 MB, 1073741824 bytes, 2097152 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk label type: dosDisk identifier: 0x8c6af17b Device Boot Start End Blocks Id System/dev/sdd1 2048 2097151 1047552 fd Linux raid autodetectDisk /dev/sdc: 1073 MB, 1073741824 bytes, 2097152 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk label type: dosDisk identifier: 0x029117a1 Device Boot Start End Blocks Id System/dev/sdc1 2048 2097151 1047552 fd Linux raid autodetectDisk /dev/sdb: 1073 MB, 1073741824 bytes, 2097152 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk label type: dosDisk identifier: 0xcc1d7915 Device Boot Start End Blocks Id System/dev/sdb1 2048 2097151 1047552 fd Linux raid autodetectDisk /dev/sde: 1073 MB, 1073741824 bytes, 2097152 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk label type: dosDisk identifier: 0x882f59d7 Device Boot Start End Blocks Id System/dev/sde1 2048 2097151 1047552 fd Linux raid autodetectDisk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk label type: dosDisk identifier: 0x000c2a2c Device Boot Start End Blocks Id System/dev/sda1 * 2048 2099199 1048576 83 Linux/dev/sda2 2099200 41943039 19921920 8e Linux LVMDisk /dev/mapper/centos-root: 18.2 GB, 18249416704 bytes, 35643392 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk /dev/mapper/centos-swap: 2147 MB, 2147483648 bytes, 4194304 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk /dev/md5: 3211 MB, 3211788288 bytes, 6273024 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 524288 bytes / 1572864 bytes
可以看到一些 Linux raid autodetect 系统已经自动检测到这些盘作为raid一部分了,可以看到最下面的
Disk /dev/md5: 3211 MB, 3211788288 bytes, 6273024 sectors
md5这个设备并不是一般正常的磁盘的名称,像是mdadm这个raid操作命令创建的raid5阵列,考虑mdadm组的软raid,使用mdadm命令查看
[root@ZhangLi ~]# mdadm -D /dev/md5/dev/md5: Version : 1.2 Creation Time : Sun Apr 26 09:57:19 2020 Raid Level : raid5 Array Size : 3136512 (2.99 GiB 3.21 GB) Used Dev Size : 1045504 (1021.00 MiB 1070.60 MB) Raid Devices : 4 Total Devices : 4 Persistence : Superblock is persistent Update Time : Sun Oct 23 23:22:20 2022 State : clean Active Devices : 4 Working Devices : 4 Failed Devices : 0 Spare Devices : 0 Layout : left-symmetric Chunk Size : 512KConsistency Policy : resync Name : localhost.localdomain:5 UUID : 128f3c5e:010a93D5:2348ec03:9e575180 Events : 36 Number Major Minor RaidDevice State 0 8 17 0 active sync /dev/sdb1 1 8 33 1 active sync /dev/sdc1 2 8 49 2 active sync /dev/sdd1 4 8 65 3 active sync /dev/sde1
可以看到这个raid的所有信息尽在掌握!无需重组
将raid先随便挂载到一个文件夹下查看一下里面文件,发现是mysql数据库文件
可以看到条带大小是512K
对网站重构
apache已经起了,数据库没起,启动数据库
启动失败,查看报错,发现数据库数据目录应该在/myshop下
查看该目录,发现该目录下无内容,想起之前的raid中是数据库文件,把之前的raid挂载到该目录下再重启mysql
[root@ZhangLi 1]# systemctl start mysqldJob for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.[root@ZhangLi 1]# systemctl status mysqld.service● mysqld.service - LSB: start and stop MySQL Loaded: loaded (/etc/rc.d/init.d/mysqld; bad; vendor preset: disabled) Active: failed (Result: exit-code) since Tue 2022-10-25 17:52:07 CST; 4s aGo Docs: man:systemd-sysv-generator(8) Process: 3289 ExecStart=/etc/rc.d/init.d/mysqld start (code=exited, status=1/FAILURE)Oct 25 17:52:06 ZhangLi.localdomain systemd[1]: Starting LSB: start and stop MySQL...Oct 25 17:52:06 ZhangLi.localdomain mysqld[3289]: Starting MySQL.Logging to '/myshop/mysql-error.log'.Oct 25 17:52:07 ZhangLi.localdomain mysqld[3289]: ERROR! The server quit without updating PID file (/myshop/mysql.pid).Oct 25 17:52:07 ZhangLi.localdomain systemd[1]: mysqld.service: control process exited, code=exited status=1Oct 25 17:52:07 ZhangLi.localdomain systemd[1]: Failed to start LSB: start and stop MySQL.Oct 25 17:52:07 ZhangLi.localdomain systemd[1]: Unit mysqld.service entered failed state.Oct 25 17:52:07 ZhangLi.localdomain systemd[1]: mysqld.service failed.[root@ZhangLi 1]# cd /myshop[root@ZhangLi myshop]# l[root@ZhangLi myshop]# mount /dev/md5 /myshop[root@ZhangLi myshop]# ls[root@ZhangLi myshop]# cd ..[root@ZhangLi /]# ls1 bin boot data dev etc home lib lib64 media mnt myshop opt proc root run sbin srv sys tmp usr var[root@ZhangLi /]# cd myshop[root@ZhangLi myshop]# lsauto.cnf ibdata1 ib_logfile0 ib_logfile1 lost+found mysql mysql-error.log mysql.pid perfORMance_schema shopx[root@ZhangLi myshop]# systemctl start mysqld[root@ZhangLi myshop]# systemctl status mysqld.service● mysqld.service - LSB: start and stop MySQL Loaded: loaded (/etc/rc.d/init.d/mysqld; bad; vendor preset: disabled) Active: active (running) since Tue 2022-10-25 17:54:41 CST; 2s ago Docs: man:systemd-sysv-generator(8) Process: 3702 ExecStart=/etc/rc.d/init.d/mysqld start (code=exited, status=0/SUCCESS) CGroup: /system.slice/mysqld.service ├─3712 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/myshop --pid-file=/myshop/mysql.pid └─4086 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/myshop --plugin-dir=/usr/local/mysql/lib64/plugin --user=mysql --log-error=/myshop/mysql-error.log...Oct 25 17:54:41 ZhangLi.localdomain systemd[1]: Starting LSB: start and stop MySQL...Oct 25 17:54:41 ZhangLi.localdomain mysqld[3702]: Starting MySQL SUCCESS!Oct 25 17:54:41 ZhangLi.localdomain systemd[1]: Started LSB: start and stop MySQL.[root@ZhangLi myshop]#
数据库已经启动成功了,访问网站
禁止访问,想到之前apache配置文件没写127.0.0.1,考虑可能需要使用郁闷访问,在本机hosts文件写映射
访问域名,成功访问但是提示无网络访问权限,我们查看/var/shop/public下的index.php查看一下访问规则,是否有停用或者其他验证
包含了/…/thinkphp/base.php和/core.php两个文件,打开这两个文件查看
发现core.php开头去检测是否能连的上谷歌,把这一串全部删掉再刷新页面
成功进网站,但是报错,
解密这串像个一句话木马base64编码
发现是个形如数据库配置文件的东西,我们查看一下我们的数据库配置文件是否还安好
果然是数据库寄了,我们用解密后的数据库配置文替换,刷新页面,网站重构完成
查找网站后台,一般查找后台的方法,先考虑网站运行目录下的文件,因为一般这个文件夹下的文件外部才能访问能得到,其他文件夹外部无法访问,后台要做到能访问。
查看application下的模块,是存在admin这个管理目录的,后台入口文件肯定会指向这个文件夹的,以此为思路。
发现Readme.php指向admin这个模块,故后台登陆页面为Readme.php。
尝试访问,访问成功,验证我们的猜想。
绕过登陆密码登陆后台,绕过登陆密码之前的题目讲的很仔细了,这里不赘述了。
后台绕过密码还有问题的看蓝信中的专题课。
这里绕过密码采用报错输出的方法
在源码中查找密码错误
在AdminService.php处找到登录逻辑,将密码校验逻辑结果通过报错输出
// 密码校验 $login_pwd = LoginPwdEncryption($params['login_pwd'], $admin['login_salt']); if($login_pwd != $admin['login_pwd']) { return DataReturn('密码错误', -3); }
// 密码校验 $login_pwd = LoginPwdEncryption($params['login_pwd'], $admin['login_salt']); if($login_pwd != $admin['login_pwd']) { return DataReturn('密码错误'.LoginPwdEncryption($params['login_pwd'], $admin['login_salt']), -3); }
输出字符串替换数据库中admin的密码串
这里链接数据库可能需要ssh隧道
至此网站重构结束,进入后台,开始解题
未找到,觉得应该在数据库备份文件里。
数据量较少,直接口算,若数据量大编写sql语句。
这里我写的是0767
未找到,找到的同学请指教一下。
本机无ftp,想到有容器,取证大师也能跑出有容器
ftp用户admin用户下文件即admin共享的文件
Grignard
2022.10.25
来源地址:https://blog.csdn.net/Grignard_/article/details/127607576
--结束END--
本文标题: 第一届创享杯 服务器部分题解
本文链接: https://lsjlt.com/news/417784.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0