77.请分析服务器,给出NAS服务器系统账号密码?[答案格式:xx@xx][★★★☆☆☆]
78.请分析服务器,给出NAS服务器的版本信息?[答案格式:xx-xx-xx][★★☆☆☆☆]
配个网先,仅主机模式
79.请分析服务器,给出NAS服务器内用户SMB的邮箱?[答案格式:xx@xx][★★☆☆☆☆]
80.请分析服务器,给出NAS服务器系统告警服务使用的邮箱?[答案格式:xx@xx][★★☆☆☆☆]
81.请分析服务器,给出NAS服务器内存储池名?[答案格式:xxx][★★☆☆☆]
82.请分析服务器,给出NAS服务器内有几个数据集和几个Zvol?[答案格式:0,0][★★★☆☆]
依次类推,答案为2,3
83.请分析服务器,给出该NAS服务器存储监听IP和端口?[答案格式:192.168.1.1:8080][★★★☆☆]
84.请分析服务器,给出NAS服务器内iSCSI目标为web的连接所使用的启动器组ID?[答案格式:xx][★★★☆☆]
85.请分析服务器,给出web服务器连接NAS服务器所使用的iqn?[答案格式:iqn.xxx][★★★☆☆]
86.请分析服务器,给出web服务器连接NAS服务器所使用的账号和密码?[答案格式:root/123][★★★★★]
87.请分析服务器,给出redis所使用的配置文件?[答案格式:/home/1.conf][★★☆☆☆]
尝试开启虚拟机,失败,没有虚拟化
内存开大点,全部启起来
教你如何破解 Centos 7 的 root 密码 | 《Linux就该这么学》 (linuxprobe.com)
如何开启或关闭SELinux_云服务器 ECS-阿里云帮助中心 (aliyun.com)
虚拟机–WEB–开启–VNC–进入单用户模式–关闭SELinux–重启–进入单用户模式–修改root密码–vi /etc/passwd 修改root shell为/bin/bash–进入系统
rw init=/sysroot/bin/sh
ctrl+x进入单用户
chroot /sysroot
vi /etc/selinux/config
vi /etc/passwd
passwd
重启就ok了
绕密后xshell连接
88.请分析服务器,给出跑分网站后台根目录?[答案格式:/xx/xx][★★★☆☆]
/www一看没有,应该是要挂载上去的,结合前面题目的共享服务
先开启iSCSI
只有sdb1是有数据的,所以这里我挂sdb1到/www下
挂上去有数据了
Thinkphp站,那么根目录就是public
89.请分析服务器,嫌疑人所使用的跑分系统可能来自哪,请给出网站?[答案格式:www.baidu.com][★★★☆☆]
随便翻了一个配置文件就有了
90.请分析服务器,给出数据库root账号密码?[答案格式:password][★★★★★]
Shell脚本加密与解密-腾讯云开发者社区-腾讯云 (tencent.com)
一眼加密
tail -n +44 backup.sh >backup.gz
gunzip backup.gz
91.请分析服务器,给出数据库备份文件存放路径?[答案格式:/xx/xxx][★★★★★]
上面都在了
92.请分析服务器,给出数据库备份文件解压密码?[答案格式:password][★★★★★]
上面都在了
93.请分析服务器,给出数据库备份文件间隔多少天会删除?[答案格式:1][★★★★★]
上面都在了
94.请分析服务器,给出数据库每天几点会执行备份操作?[答案格式:00:00][★★★☆☆]
这段命令是设置了一个定时任务,它将在每天的凌晨2点执行一个脚本文件。具体来说,命令的含义是:
- `0 2 * * *`:这部分是时间设置,表示在每天的第2小时(凌晨2点)执行任务。
- `sh /root/backup.sh`:这是要执行的命令,它会运行位于 `/root/backup.sh` 路径下的 shell 脚本文件。
因此,这个定时任务将会在每天的凌晨2点运行 `/root/backup.sh` 脚本,用途可能是进行备份操作。
95.请分析服务器,给出跑分网站后台用户余额总计?[答案格式:1000][★★☆☆☆]
下面是网站重构,首先恢复一下数据库
#!/bin/bash
#指定连接数据库信息(用户名、密码、连接地址、端口、安装目录)
DB_USER="root"
DB_PWD="3W.pa0fen.com"
DB_IP="127.0.0.1"
DB_PORT="3306"
#是指mysqldump命令所在目录
DB_DIR="/usr/bin"
#获取系统当前时间并格式化为:20210729
BAK_DATE=`date +%Y%m%d`
#指定备份文件保存的天数
BAK_DAY=45
#指定备份的数据库,可以指定多个中间用空格隔开,或者不指定则默认全部备份
BAK_DATABASES=("paofen")
#指定备份路径
BAK_PATH="/data/mysql_back"
#创建备份目录
mkdir -p ${BAK_PATH}/$BAK_DATE
#开始执行备份
echo "------- $(date +%F_%T) Start MySQL database backup-------- " >>${BAK_PATH}/back.log
#循环遍历
for database in "${BAK_DATABASES[@]}"
do
${DB_DIR}/mysqldump -u${DB_USER} -p${DB_PWD} --host=${DB_IP} --port=${DB_PORT} --databases $database > ${BAK_PATH}/${BAK_DATE}/${database}.sql
done
#创建压缩文件
cd ${BAK_PATH}
tar -czPf - $BAK_DATE | openssl des3 -salt -k p@ssw0rd -out db_backup_${BAK_DATE}.tar.gz
#删除备份目录
rm -rf ${BAK_PATH}/$BAK_DATE
#遍历备份目录下的文件
LIST=$(ls ${BAK_PATH}/db_backup_*)
#获取截止时间,将早于该时间的文件删除
SECONDS=$(date -d "$(date +%F) - ${BAK_DAY} days" +%s)
for index in ${LIST}
do
#获取文件名并格式化,获取时间,如20210729
timeString=$(echo ${index} | egrep -o "?[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]")
if [ -n "$timeString" ]
then
indexDate=${timeString//./-}
indexSecond=$( date -d ${indexDate} +%s )
#与当前时间做比较,把早于7天的文件删除
if [ $(( $SECOND - $indexDate )) -gt 0 ]
then
rm -f $index
echo "-------deleted old file $index -------" >> ${BAK_PATH}/back.log
fi
fi
done
echo "-------$(date +%F_%T) Stop MySQL database backup-------- " >>${BAK_PATH}/back.log
老方法先mount上
tar -czPf - $BAK_DATE | openssl des3 -salt -k p@ssw0rd -out db_backup_${BAK_DATE}.tar.gz
加密逻辑是这样的,可推解密逻辑
openssl des3 -d -salt -k p@ssw0rd -in db_backup_20230515.tar.gz| tar -zxv
得到sql文件
service mysqld start
mysql -u root -p
source /data/mysql_back/20230515/paofen.sql
成功导入
顺便把mysql日志开启,这样有利于后面的网站绕密
show variables like 'general_log';
show variables like 'general_log_file';
set global general_log = ON;
set global general_log_file='/tmp/general.log';
回到web虚拟机,同样也是什么服务也没启
service nginx start:启动nginx服务
service php-fpm start:启动PHP-FPM,以支持Nginx对PHP的解析
chgrp -R nginx /www/admin.paofen.com
chown -R nginx /www/admin.paofen.com:设置admin.paofen.com/目录及其子目录的所属组与拥有者为nginx
chgrp redis /var/log/redis/redis.log
chown redis /var/log/redis/redis.log:设置redis.log文件的所属组与拥有者为redis
service redis start:启动redis服务
更改数据库配置文件
因为hosts里写了3w.paofen.db的地址,所以这里不用改
最后看nginx配置文件
cat admin.paofen.com.conf
server
{
listen 8083;
server_name admin.paofen.com;
index index.php index.html index.htm default.php default.htm default.html;
root /www/admin.paofen.com/public;
error_page 404 /404.html;
location = /404.html {
return 404 'Sorry, File not Found!';
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html; # windows用户替换这个目录
}
location / {
try_files $uri @rewrite;
}
location @rewrite {
set $static 0;
if ($uri ~ \.(css|js|jpg|jpeg|png|gif|ico|woff|eot|svg|css\.map|min\.map)$) {
set $static 1;
}
if ($static = 0) {
rewrite ^/(.*)$ /index.php?s=/$1;
}
}
location ~ /Uploads/.*\.php$ {
deny all;
}
location ~ \.php/ {
if ($request_uri ~ ^(.+\.php)(/.+?)($|\?)) { }
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_param SCRIPT_NAME $1;
fastcgi_param PATH_INFO $2;
fastcgi_param SCRIPT_FILENAME $document_root$1;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
access_log /www/logs/admin.paofen.com.log main;
error_log /www/logs/admin.paofen.com.error.log;
}
访问成功,但是连接失败
尝试关闭两台虚拟机的防火墙
service firewalld stop
再次访问
一片空白没有报错,应该是成功了
cat /www/logs/admin.paofen.com.log | grep admin
找到后台地址
先用admin/123456梭一发
日志里没有,那么只能修改判断逻辑
find ./ -type f -iname "*.php" | xargs grep "密码输入错误"
看路径知道应该是改第一个
/**
* 登录处理
*/
public function loginHandle($username = '', $password = '', $verify = '')
{
$validate_result = $this->validateLogin->scene('admin')->check(compact('username','password','verify'));
if (!$validate_result) {
return [RESULT_ERROR, $this->validateLogin->getError()];
}
$member = $this->logicMember->getMemberInfo(['username' => $username]);
if (!empty($member['password']) && data_md5_key($password) == $member['password']) {
$this->modelMember->setInfo([TIME_UT_NAME => TIME_NOW, 'session_id' => session_id()], ['id' => $member['id']]);
$auth = ['member_id' => $member['id'], TIME_UT_NAME => TIME_NOW];
session('member_info', $member);
session('member_auth', $auth);
session('member_auth_sign', data_auth_sign($auth));
action_log('登录', '登录操作,username:'. $username);
return [RESULT_SUCCESS, '登录成功', url('index/index')];
} else {
$error = empty($member['id']) ? '用户账号不存在' : '密码输入错误';
return [RESULT_ERROR, $error];
}
}
修改为
if (!empty($member['password']) && data_md5_key($password) != $member['password'])
成功登录
96.请分析服务器,给出跑分平台后台未处理的用户申请有多少个?[答案格式:1000][★★☆☆☆]
97.请分析服务器,给出会员聂鸿熙推荐人的姓名?[答案格式:张三][★★☆☆☆]
98.请分析服务器,给出跑分平台内用户银行卡所属银行共有几家?[答案格式:10][★★★★★]
或sql查询
99.接上题,请给出这些银行中用户数最多的银行名称?[答案格式:xx银行][★★★★★]
这道题csv有点慢了,不如sql
100.请分析服务器,给出用户“祝虹雨”通过审核的充值总额?[答案格式:10][★★★★★]
101.请分析服务器,给出该跑分团队可能的办公大楼有几个?[答案格式:1][★★☆☆☆]
对CSM虚拟机动手
宝塔的特征,宝塔一把梭准备好
解除宝塔限制:bt 23 && bt 11 && bt 12 && bt 13 && bt 24 && bt 5或
cp -r /www/backup/panel/ /root/ && cp -r /www/server/panel/data/ /root && rm -f /www/server/panel/data/close.pl && bt 23 && bt 11 && bt 12 && bt 13 && bt 24 && bt 5
默认管理路径:/www/server/panel/data/admin_path.pl
默认端口:/www/server/panel/data/port.pl
默认ip:/www/server/panel/data/iplist.txt
宝塔的日志:/www/server/panel/logs/request
宝塔面板的密码加密方式:/www/server/panel/class/users.py
管理路径存放于/www/server/panel/data/default.db
在users表中可以得到用户名和加密后的密码
在config表中可以得到mysql的root密码
PermissionError: [Errno 1] Operation not permitted: '/www/server/panel/config/basic_auth.json': chmod 777 xxx.json或者chattr -i xxx.json然后rm -rf xxx.json
查看端口:cat /www/server/panel/vhost/nginx/dbshop.com.conf |grep listen
老套路,看日志,找后台,绕密,顺便把navicat也连上
导入数据库数据,然后找报错
他这里有中英文对照,所以要用英文再找一遍,如果你熟悉Thinkphp架构的话也可以直接找登录逻辑
public function login($username, $password, $keeptime = 0)
{
$admin = Admin::get(['username' => $username]);
if (!$admin) {
$this->setError('Username is incorrect');
return false;
}
if ($admin['status'] == 'hidden') {
$this->setError('Admin is forbidden');
return false;
}
if (Config::get('fastadmin.login_failure_retry') && $admin->loginfailure >= 10 && time() - $admin->updatetime < 86400) {
$this->setError('Please try again after 1 day');
return false;
}
if ($admin->password != md5(md5($password) . $admin->salt)) {
$admin->loginfailure++;
$admin->save();
$this->setError('Password is incorrect');
return false;
}
$admin->loginfailure = 0;
$admin->logintime = time();
$admin->loginip = request()->ip();
$admin->token = Random::uuid();
$admin->save();
Session::set("admin", $admin->toArray());
$this->keeplogin($keeptime);
return true;
}
改为
if ($admin->password == md5(md5($password) . $admin->salt))
102.请分析服务器,给出用户John共提了几次会议预约申请,通过了几个?[答案格式:1,1][★★☆☆☆]
103.接上题,用户John哪个时间段的会议预约申请次数最多[答案格式:2000-01-01 00:00-00:00][★★☆☆☆]
104.请分析服务器,给出用户Harvey预约了什么时间的会议?[答案格式:2000-01-01 00:00-00:00][★★☆☆☆]
105.会议管理系统的后台登陆地址是[答案格式:www.baidu.com:8080/login.php][★★☆☆☆]
上面已经找到了
hy.paofen.com:8085/dkewl.php