当前位置: 首页 > ops >正文

AWD相关知识

AWD

AWD:Attack With Defence,即攻防对抗,比赛中每个队伍维护多台服务器(一般两三台,视小组参赛人数而定),服务器中存在多个漏洞(web层、系统层、中间件层等),利用漏洞攻击其他队伍可以进行得分,加固时间段可自行发现漏洞对服务器进行加固,避免被其他队伍攻击失分。

  • 1.一般分配Web服务器,服务器(多数为Linux)某处存在flag(一般在根目录下);

  • 2.一般每个队伍会给一个低权限用户,非root权限;

  • 3.各队一般都有一个初始分数;

  • 4.flag一旦被其他队伍拿走,该队扣除一定积分;

  • 5.得到flag的队伍加分;

  • 6.flag在主办方的设定下每隔一定时间刷新一轮(大概是10分钟);

  • 7.主办方会对每个队伍的服务进行check,服务器宕机扣除本轮flag分数,扣除的分值由服务check正常的队伍均分。

准备时间

一般AWD会有30分钟准备时间

  1. 登录

    1. SSH登录

      1. 命令格式为: ssh -p 指定端口号 用户名@ip

      2. 使用Finalshell或者Xshell等图形化服务器管理软件

    2. 密钥登录

      1. sftp -i id_rsa ctf@192.168.182.130

  2. 修改密码

    1. 官方在给出服务器密码时,很有可能是默认的,那就需要赶快修改自己的密码,但一般主办方给的是随机密码。

    2. 如果发现每个队伍的SSH账号密码都是一样的,需要立即修改口令,如果被其他队伍改了那就gg了,同时要准备好批量脚本,一旦是默认密码,可以直接利用。

    3. ssh修改密码 (passwd)

    4. mysql修改密码

      1. 方法一: show databases; use mysql; set password for root@localhost = password('123');

      2. 方法二:update user set password = PASSWORD('需要更换的密码') where user='root'; flush privileges; show tables;

    5. Web后台很有可能存在弱口令,需要立即修改,也可以修改其他队伍的后台口令,为本队所用,说不定可以利用后台getshell。

  3. 备份源码 比赛开始后第一时间备份服务器中web目录下的文件(/var/www/html),备份的目的在于万一对方利用漏洞进入你的靶机将你的WWW下的目录给删除了,可以及时恢复,如果你没有备份就相当于宕机了。

    1. 目录打包

2. 数据库备份

- 备份指定的多个数据库

mysqldump -uroot -proot --databases DB1 DB2 > /tmp/db.sql

无 lock tables 权限的解决方法

mysqldump -uroot -proot --all-databases --skip-lock-tables > /tmp/db.sql

- 恢复备份(在 MySQL 终端下执行)

source FILE_PATH

3.下载到本地
    scp -P ssh_port user@host_ip:/tmp/bak.sql local_file 

防御思路

  1. 在准备时间,把打包好的源码解压到本地,使用漏洞扫描器(D盾,河马等)进行扫描,查看是否有后门

  2. 可以使用 seay源码审计系统进行代码审计

  3. 我们可以对自己的靶机进行端口扫描

 以下是一些服务端口的漏洞:  
    22:ssh弱口令  
    873:未授权访问漏洞  
    3306:mysql弱口令  
    6379:redis未授权访问漏洞

  1. waf的作用: 最重要是分析流量,别人攻击我们的时候,我们可以看到别人的攻击方式。这样的话即使我们找 不到攻击点,非常苦恼的时候,我们就可以分析流量,使用别人的攻击方式。 可以直接进行防御,类似于一台防火墙(一般的比赛是不允许使用的,毕竟比赛时间短,就根本绕不过去waf,那比赛就没意思了)

    有些比赛是不允许上通用waf的,check机制可能会check到waf过滤的参数,导致宕机,waf部署需要谨慎,还需要注意的是:上完waf检查服务是否可用,部分检查允许使用部分小的waf,会检查页面完整性、服务完整性。

    常用的waf使用方法,是用你要保护的文件去包含这个waf.php。比如说,你要保护select.php,那么你就在select.php里面写上一行include './waf.php'或者 require_once('waf.php'); 如果你要保护所有文件,那么就在config这种配置文件里包含waf,因为这种config的文件,一般会被大部分功能页面调用

    1. )AWD_PHP_WAF 项目地址:https://github.com/NonupleBroken/AWD_PHP_WAF

    2. )awd-watchbird 这是个通防waf,支持流量转发和替换flag 项目地址:GitHub - leohearts/awd-watchbird: A powerful PHP WAF for AWD

  2. 流量监控 即使不能上waf,外面也可以准备一个流量监控脚本,来帮助我们进行流量分析,获取对方的攻击流量,我们也能以同样的方式去攻击其余队伍。

  3. 清除对方的攻击 ps aux查看进程,查看是否有异常的进程,不清楚什么是异常的进程,可以在开始时查看一下并记录下来,被攻击时,对照着记录,清理其余进程。 kill -9 pid

攻击思路

  1. 主机发现 准备好扫描一个网段的脚本,靶机一般都在同一个局域网

  2. 后门利用 我们在准备时期扫到的后门,可以尝试利用。 如果连接成功,可以先不急着提交flag,尝试进行权限维持,写入不死马,这样我们就能一直拿他flag。

  3. AWD一般使用CMS,尽量多收集一些CMS和对应的POC

  4. 攻击web服务,访问对方的网站,尝试各种攻击手段

最后:

保持良好的心态,不到最后一刻都有翻盘的可能

找出漏洞拿到shell,权限维持后,尽量把这个洞给被控机修了,以免被别人拿到shell

不仅要保证自己能拿到shell,还有保证别人拿不到shell

拿shell前先打一波流量,混淆视听

保证自己的网站上没有d盾可以扫出来的后门

提高python脚本编写能力

webscan --url http://192-168-1-251.pvp5796.bugku.cn/ --html-output single-url1.html

http://www.xdnf.cn/news/19211.html

相关文章:

  • 【Python】国内可用的高速pip镜像源大全
  • 蓝牙5.3核心技术架构解析:从控制器到主机的无线通信设计
  • 知识随记-----Qt 样式表深度解析:何时需要重写 paintEvent 让 QSS 生效
  • 鸿蒙ArkTS 核心篇-15-条件渲染(组件)
  • 如何改变传统教育的消费习惯-第三代结束-第四代开启
  • 源码解析-时间轮[HashedWheelTimer]
  • 项目管理方法如何选择
  • Python实现京东商品数据自动化采集的实用指南
  • 水库/油箱/化工罐区...无线液位控制系统如何实现远程监控?
  • C++ constexpr:编译时计算的高效秘籍
  • 动态规划--Day05--最大子数组和--53. 最大子数组和,2606. 找到最大开销的子字符串,1749. 任意子数组和的绝对值的最大值
  • 音视频学习(六十):H264中的PPS
  • 基于Kubernetes Operator的自动化运维平台设计与实践
  • Ethan开发者创新项目日报 | 2025-08-30
  • OpenGeode 综合介绍(基于 GitHub 仓库)
  • pikachu之XSS
  • JavaWeb前端06(ElementPlus快速构建网页)
  • JavaScript 一些进阶知识点与注意事项
  • Python可视化与交互-matplotlib库
  • 仓颉编程语言青少年基础教程:程序基本结构和语言特点
  • 【leetcode】112. 路径总和
  • # `std::basic_istream`总结
  • 基于 MyBatis-Plus 拦截器实现“结账后禁止修改”的优雅方案
  • 数据库的CURD
  • 【C++】红黑树(详解)
  • 【点云工具】CloudCompare学习记录,自用分享
  • Java对接Redis全攻略:Jedis/SpringData/Redisson三剑客对决
  • 机器人控制器开发(底层模块)——rk3588s 的 CAN 配置
  • CSS学习与心得分享
  • 码农特供版《消费者权益保护法》逆向工程指北——附源码级注释与异常处理方案