MazeSec 111z 设计流程
# 出题流程
修改主机名
sudo hostnamectl set-hostname 111z
vim /etc/hosts
# 添加行
127.0.0.1 111z
1
2
3
4
2
3
4
生成密码:
openssl rand -base64 18
1
移出默认用户
sudo deluser --remove-home welcome
1
创建用户
# 创建用户并设置密码
sudo useradd -m -s /bin/bash -d /home/ll ll
echo "ll:Bp2tFMYfElkoMWlOUsOD1C30" | sudo chpasswd
sudo useradd -m -s /bin/bash -d /home/mj mj
echo "mj:fiZhbvboiO3QukM7JEADuZor" | sudo chpasswd
echo "root:NIZTfKiXU8a5Xa1fA3tDPDUn" | sudo chpasswd
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# www-data 用户配置 Web 环境
修改php配置文件,禁用危险函数
phpinfo() 查看配置文件路径:/etc/php/8.3/apache2/php.ini
备份
sudo cp /etc/php/8.3/apache2/php.ini /etc/php/8.3/apache2/php.ini.bak
1
修改 /etc/php/8.3/apache2/php.ini
disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,exec,shell_exec,popen,proc_open,passthru,symlink,link,syslog,imap_open,dl,system
1
ai生成页面提示词
使用php写一个图床index.php页面,logo:"MazeSec",banner:“迷径深处战千机,技艺同修共此行。”
要点:
1.upload.php处理文件上传,web根目录是/var/www/html,上传点uploads
2.仅前端校验文件名扩展
3.后端仅检测文件内容(危险函数名且仅匹配小写,如system,assert,eval),如果有,前端返回提示匹配到的危险函数
4.后端不校验扩展名,上传成功后,提示上传路径
``
目录权限
```bash
sudo mkdir -p /var/www/html/uploads
sudo chown -R www-data:www-data /var/www/html
sudo chmod 777 /var/www/html/uploads
sudo chmod 755 /var/www/html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# ll ssh凭证
echo 'll:Bp2tFMYfElkoMWlOUsOD1C30' > /opt/llpass.txt
chmod 644 /opt/llpass.txt
1
2
2
# ll 用户使用 sudo neofetch 提权至 mj 用户
sudo apt install -y neofetch
# 验证安装
neofetch --version
which neofetch
# 备份原始neofetch
sudo cp /usr/bin/neofetch /usr/bin/neofetch.bak
1
2
3
4
5
6
2
3
4
5
6
配置 neofetch sudo
# 配置sudo权限
sudo tee /etc/sudoers.d/neo << 'EOF'
ll ALL=(mj) NOPASSWD: /usr/bin/neofetch
EOF
sudo chmod 440 /etc/sudoers.d/neo
sudo visudo -c
1
2
3
4
5
6
2
3
4
5
6
测试sudo生效
sudo -u ll sudo -l
# 测试提权
sudo -u ll sudo -u mj /usr/bin/neofetch
1
2
3
2
3
# mj 用户配置 tar 通配符漏洞脚本
创建备份目录
# 创建备份目录和脚本
sudo mkdir -p /opt/backup
1
2
2
创建备份脚本
# 创建备份脚本
sudo tee /opt/backup/backup.sh << 'EOF'
#!/bin/bash
# 网站上传文件备份脚本
cd /var/www/html/uploads
tar czf /tmp/backup.tar.gz *
echo "Backup completed"
EOF
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
脚本权限控制
# 设置脚本权限 - mj用户需要可执行权限
sudo chown root:root /opt/backup/backup.sh
sudo chmod 755 /opt/backup/backup.sh
1
2
3
2
3
用户权限控制
# 配置uploads目录权限
sudo chown www-data:www-data /var/www/html/uploads
sudo chmod 775 /var/www/html/uploads
sudo usermod -a -G www-data mj
1
2
3
4
2
3
4
sudo权限控制
# 配置sudo权限
sudo tee /etc/sudoers.d/backup << 'EOF'
mj ALL=(root) NOPASSWD: /opt/backup/backup.sh
EOF
sudo chmod 440 /etc/sudoers.d/backup
sudo visudo -c
1
2
3
4
5
6
7
2
3
4
5
6
7
# 收尾
清除历史记录
history -c
rm -f /home/ll/.bash_history
rm -f /home/mj/.bash_history
1
2
3
2
3
编辑 (opens new window)
最后一次更新于: 2025/11/23, 12:23:25