AWD入门
一、简介
AWD(Attack With Defense,攻防兼备)模式。你需要在一场比赛里要扮演攻击方和防守方,攻者得分,失守者会被扣分。也就是说攻击别人的靶机可以获取 Flag 分数时,别人会被扣分,同时你也要保护自己的主机不被别人得分,以防扣分。
二、流程
1.出题方会给每个队伍提供相同环境的靶机,会提供IP段,可以通过脚本或者手动找到对方IP
2.比赛分为加固时间和攻击时间,时间长短根据规则而定
3.每个服务、数据库、主机上都会可能存在 flag 字段,并且会定时刷新。通过攻击拿到 flag 后需要提交到裁判机进行得分,一般会提供指定的提交接口。下一轮刷新后,如果还存在该漏洞,可以继续利用漏洞获取 flag 进行得分。
4.Web 攻击流程一般分为信息收集、攻击端口、攻击Web服务、维持权限四步
三、防守加固
1.比赛开始时我们会分配到一个至多个靶机,通常是分配给我们ssh 用户名和密码还有虚拟ip等信息,我们需要自己去连接靶机。使用xshell和xftp
用法可参考链接:【Linux】—Xshell、Xftp安装-CSDN博客
2.连接靶机后的第一件事就是dump网站源码,使用ssh工具(xshell)保留源码,复制两份,用d盾去扫一份,因为当我们靶机受到攻击时对手可能直接删除我们的源码导致靶机DOWN机,而通常比赛中主办方会在源码中留有一些后门,我们用D盾去扫描一下来进行修复和攻击。
D盾的使用可参考:D盾使用方法-CSDN博客
3.数据库备份,登录数据库来进行备份,当数据被删除时可以使用命令快速还原。
mysqldump -u db_user -p db_passwd db_name > 1.sql //备份指定数据库
mysql -u db_user -p db_passwd db_name < 1.sql //还原指定数据库
4.修改密码
passwd //linux修改ssh即本地密码
mysql>set password for root@localhost =password('xino'); //修改mysql登录密码
5.关闭不必要端口,一些端口会存在漏洞,为了保证安全我们关闭一些不必要的端口来进行维护
6.WAF用来分析阻挡对手攻击的工具它可以分析流量,别人攻击我们的时候,我们可以看到别人的攻击方式。当没有攻击思路时我们就可以分析流量,使用别人的攻击方式
每个文件前边加:
require_once(waf.php);
为了方便我们可以修改php.ini配置文件,来自动给当前文件夹下文件头部添加:
auto_prepend_file=<filename>;
常见加固手段可以参考:AWD常见防御加固手段_awd防守脚本-CSDN博客
四、攻击
Web 攻击流程一般分为信息收集、攻击端口、攻击Web服务、维持权限四步
1.信息搜集
1>探测主机
用 Nmap 或者 HTTPScan等工具,先扫描主办方给的内网存活主机,弄明白网络拓扑(用传输介质连各种设备的物理布局。指构成网络的成员间特定的物理的即真实的、或者逻辑的即虚拟的排列方式。如果两个网络的连接结构相同我们就说它们的网络拓扑相同,尽管它们各自内部的物理接线、节点间距离可能会有不同。),一般会给出主机范围
2>探测端口
主办方给的机器都是一样的,所以直接看自己开了什么端口就行。如果不一样的话,使用 Nmap 进行常见端口扫描,先攻击常见端口,再放后台进行全端口的扫描,发现新端口再加入到攻击队列中。
3>探测端口服务
端口服务一般用 Nmap 就能扫到,并且可以用 Nmap 的脚本扫一下漏洞,但是需要注意 Nmap 的相关参数,这要根据情况灵活运用。
2.端口攻击
端口一般会有弱口令存在的情况,比如常见的 22、3389、1443、3306 等主机登陆、数据库端口,当发现靶机存在弱口令后,我们就可以遍历IP地址来查询存活的机器来自动连接查找FLAG,或者在受害者靶机里植入后门文件来维持我们的控制。
自带后门,通常靶机会有自带的后门木马,我们知道路径后便可以写一个脚本批量连接来提交FLAG
3.web攻击
Web 方面的语言多为 PHP,小部分为 Java 和 Python。这里的 Web 环境分两种情况,一种是已有漏洞的框架,一种是出题人写的框架。
1.已有漏洞的框架
通常会比较明显。比如说 Struts 2 各种漏洞等等,用工具扫就可以扫出来。这个需要准备得比较充分,在电脑中备好 EXP 库、漏洞库和各种扫描工具库,以便能够快速利用比较明显的漏洞。
2.出题人出的框架
常用并且简单有效的做法是把整站源码下载下来,直接用工具审计。以 PHP 举例,一般的流程是先D盾查杀,发现有带有预留后门或者 Webshell 马上进行加固。
3.源码审计
把后门的问题搞定、防止别人快速拿分后,其次才是源码审计,发现问题点后迅速验证,报给防守队友,并且开始写攻击脚本。以 PHP 举例,一般是使用 Seay 等源码审计工具,审核出比较明显的漏洞。
Seay使用:PHP代码审计工具-CSDN博客
4.维持权限
在 AWD 中优先考虑种不死马、反弹 shell,用一般木马的留后门方式维持权限,以便后续刷 flag,再考虑提升权限。
不死马:主要功能是执行后会不断在该路径生成一个 shell 文件,用于菜刀等工具进行连接,是一种维持权限的方法。
注:使用 `find / -name *flag*` 或 `grep -rn ”flag” *` 类似的语句可以快速发现 flag 所在的地方,方便后续拿分。
五、awd复现
开始后先用xshell连接主机
连接上以后先修改密码
然后进行备份,将源码导出
然后就可以用D盾扫描并通过代码审计,查看有什么漏洞
下面使用的seay自动源码审计的这个工具师兄说最好不要使用,这个只能扫描出一些最基本的漏洞,在代码不是很多的情况下最好还是自己审计
接下来就是通过注释等修复漏洞,等时间到了以后就可以攻击其他人了
通过nmap扫描出可运行的端口,这里也可以用脚本
import requests
url = "http://172.16.17.202:"
for i in range(2200,2211):url_new = url + '{}'.format(i)try:if requests.get(url_new).status_code == 200:print(url_new+'能访问')except:pass
知道有哪些端口以后就可以登上网页查看一下
先在首页检查一下,划到最下面就发现有一个rce的漏洞
还没有被修复,接着查看自己的源码会发现flag在根目录下
直接查看
相关文章:

AWD入门
一、简介 AWD(Attack With Defense,攻防兼备)模式。你需要在一场比赛里要扮演攻击方和防守方,攻者得分,失守者会被扣分。也就是说攻击别人的靶机可以获取 Flag 分数时,别人会被扣分,同时你也要保护自己的主机不被别人…...

T3矩阵看功率
每个像素的T3矩阵,功率等于特征值的和。 不同的像素的T3矩阵相加,可不能用特征分解的相加,因为两个T矩阵的特征向量不同...

VLMEvalKit多模态大模型评测工具源码解析
vlmeval/api和vlmeval/vlm文件夹下分别是api接口和本地运行的大模型的代码 基类都是base vlmeval/dataset是数据集处理代码 vlmeval/inference.py是推理代码 run.py的整个流程 1 vlmeval/api/base.py 主要为需要与外部API交互的系统提供了一个通用的框架 类属性 allowed_type…...

将 Docker 安装到指定目录
将 Docker 安装到指定目录 将 Docker 安装到指定目录 Docker 默认安装在 C:\Program Files\Docker\Docker,这可能会占用大量 C 盘空间。你可以按以下步骤将 Docker 安装到其他盘(例如 E 盘): 创建安装目录:在 E 盘创…...

哪些企业需要部署SD-WAN?
首先,让我们先明确SD-WAN的定义。SD-WAN,中文全称为软件定义广域网(Software-Defined Wide Area Network),通过集中化管理与流量控制,帮助企业优化网络性能,提升用户体验。与传统广域网…...

通信基站类型、频段与网络标准
【1】通信基站类型 移动通信基站根据覆盖面积和功率大小主要可以分为以下几种类型: 宏基站(宏站):这是最常见的基站类型,具有较大的发射功率和较广的覆盖范围,通常覆盖半径从1到25公里不等。宏基站主要用于…...

Java IO教程之Java 文件一口气讲完!( *︾▽︾)
Java 文件 Java IO教程 - Java文件 File类的对象是文件或目录的路径名的抽象表示。 创建文件 我们可以从中创建一个 File 对象 路径名父路径名和子路径名URI(统一资源标识符) 我们可以使用File类的以下构造函数之一创建一个文件: File(…...

如何在 Ubuntu 24 上安装 Vmware Tools
原文 Vmware Tools作用 增强图形显示性能 分辨率适配 可使虚拟机的分辨率能够自动适应窗口大小的变化。当您调整 VMware 软件窗口的大小时,Ubuntu 24 虚拟机的屏幕分辨率会随之自动调整,为用户提供更好的视觉体验,方便在不同的使用场景下进…...

内网穿透:如何借助Cloudflare连接没有公网的电脑的远程桌面(RDP)
内网穿透:如何借助Cloudflare连接没有公网的电脑的远程桌面(RDP)-含详细原理配置说明介绍 前言 远程桌面协议(RDP, Remote Desktop Protocol)可用于远程桌面连接,Windows系统(家庭版除外)也是支持这种协议的,无需安装…...

明星作家都在使用的电子书制作工具,现在向大家介绍
在数字化时代,电子书已经成为了广大读者和作家的新宠。越来越多的作家开始尝试将手中的文字作品转化为电子书,以便在更广泛的平台上推广和传播。那么,如何高效、便捷地制作电子书呢?今天,我们就来为大家揭秘一款明星…...

简单认识Maven 3-认识pop.Xml配置文件中的代码
pom.xml是 Maven 项目的核心配置文件,它包含了项目的各种配置信息,以下是对其主要内容含义的认识: 一、项目基本信息 <groupId>: 定义项目的组织或团体的唯一标识符,通常采用反向域名的格式。例如,“…...

LangChain4j系列—OpenAI开发实例
一、引入Maven依赖 1、纯Java <dependency><groupId>dev.langchain4j</groupId><artifactId>langchain4j-open-ai</artifactId><version>0.35.0</version> </dependency> 2、Spring boot <dependency><groupId&g…...

Java 中简化操作集合的方法
在日常 Java 开发中,我们经常需要操作集合,如 List、Set 和 Map。虽然 Java 提供了丰富的集合框架供开发者使用,但在实际编写业务逻辑时,如何简化集合操作、提高代码可读性和效率,依然是一个经常遇到的问题。特别是随着…...

ArcGIS Pro SDK (十七)宗地结构
ArcGIS Pro SDK (十七)宗地结构 环境:Visual Studio 2022 + .NET6 + ArcGIS Pro SDK 3.0 宗地结构 1 获取活动记录 string errorMessage = await QueuedTask.Run(() => {...

D. Co-growing Sequence
传送门:Problem - 1547D - Codeforces 题意:给定一个 数组 a , 构造一个数组 b ,使得 ( a[i] ^ b[i] ) & ( a[i 1] ^ b[ i 1] ) a[i] ^ b[i] 思路:(二进制题目) 设 a[i] ^ b[i] t 我们要让…...

docker配置加速器
阿里云 控制台》容器镜像服务》镜像工具》镜像加速器 复制地址:https://ywtoq7bz.mirror.aliyuncs.com 到:etc/docker下:vi daemon.json 格式: { "registry-mirrors": ["加速器地址"] } 注࿱…...

JS事件和DOM
1. DOM 1.1 基本概念 DOM,全称 Document Object Model,即文档对象模型。它是 Web 上最常用的 API 之一,是加载在浏览器中的文档模型,可以将文档表示为节点树(或称 DOM 树),其中每个节点代表文…...

CAS 详解
目录 Java 中 CAS 是如何实现的? CAS 算法存在哪些问题? ABA 问题 循环时间长开销大 只能保证一个共享变量的原子操作 Java 中 CAS 是如何实现的? 在 Java 中,实现 CAS(Compare-And-Swap, 比较并交换)操作的一个关键类是Unsafe。 Un…...

AI大模型那么火,教你一键Modelarts玩转开源LlaMA(羊驼)大模型
近日, LlaMA(羊驼) 这个大模型再次冲上热搜! LLaMA(Large Language Model Meta AI),由 Meta AI 发布的一个开放且高效的大型基础语言模型,共有 7B、13B、33B、65B(650 亿)四种版本。…...

Spring AI Alibaba: 支持国产大模型的Spring ai框架
Spring AI :java做ai应用的最好选择 过去,Java在AI应用开发方面缺乏一个高效且易于集成的框架,这限制了开发者快速构建和部署智能应用程序的能力。 Spring AI正是为解决这一问题而生,它提供了一套统一的接口,使得AI功…...

ChatGPT4o、o1 谁才是最佳大模型?
如何选择合适的 ChatGPT 模型?OpenAI 更新细节与 GPTs 的深入解析 随着人工智能的发展,ChatGPT 已成为众多用户的强大助手,广泛应用于写作、编程、学习和商业等多个领域。然而,面对 OpenAI 提供的众多模型(如 GPT-4、…...

[笔记] 关于CreateProcessWithLogonW函数创建进程
函数介绍 https://learn.microsoft.com/zh-cn/windows/win32/api/winbase/nf-winbase-createprocesswithlogonw BOOL CreateProcessWithLogonW([in] LPCWSTR lpUsername,[in, optional] LPCWSTR lpDomain,[in] …...

Ubuntu的Qt编译环境配置
1、找不到C和C编译器 利用run文件安装QT6.8.0和QT5.12.2版本后,打开QtCreator时,找不到编译器。 可在终端中查找gcc和g版本,如果没有就安装。 gcc --version g --version 如果没有就安装: sudo apt-get install gcc sudo apt-…...

12 django管理系统 - 注册与登录 - 登录
为了演示方便,我就直接使用models里的Admin来演示,不再创建用户模型了。 ok,先做基础配置 首先是在base.html中,新增登录和注册的入口 <ul class"nav navbar-nav navbar-right"><li><a href"/ac…...

2020年计算机网络408真题解析
第一题: 解析:OSI参考模型网络协议的三要素 网络协议的三要素:语法 ,语义,同步(时序) 语法:定义收发双方所交换信息的格式 语法:定义收发双方所要完成的操作 网页的加载 …...

速盾:cdn高防服务器防火墙的特性是什么?
CDN高防服务器防火墙是一种专门为互联网应用提供安全防护的网络安全设备。它采用先进的技术和算法,通过对网络流量进行过滤和检测,以防止恶意攻击和非法访问,保障网络服务的可用性和安全性。CDN高防服务器防火墙的特性主要包括以下几个方面&a…...

小程序分包和预加载
一、目的 分包的目的: 提升小程序的首屏加载速度,其原理和PC端网页的路由懒加载非常类似。即当我们第一个打开一个小程序的时候,只加载主包以及一些公共的资源,当调到某个页面的时候,在加载该页面所在的分包…...

【MATLAB 串口调试+虚拟串口测试】
文章目录 前言一、matlab 串口二、测试串口1.从系统中获取串口号2.避免串口打开被占用3. 安装虚拟串口4. 打开串口助手和MATALB 进行测试 总结 前言 提示:这里可以添加本文要记录的大概内容: 项目需要: 提示:以下是本篇文章正文…...

mac 安装最新版nginx
1. clone最新版本源代码: git clone https://github.com/nginx/nginx.git 2. 下载PCRE 没有PCRE那我们就下,下载地址:https://sourceforge.net/projects/pcre/files/pcre/,笔者下载的pcre-8.45.zip,下载之后解压到ngi…...

极氪汽车困局:营销频繁车、产品力不足
“ 极氪汽车的“车上吃火锅”营销活动虽登上热搜,但因频繁忽视老用户和产品力不足的争议,并未赢得消费者好感,反而加剧负面印象。 ” 科技新知 原创 作者丨颜瞾 编辑丨蕨影 近日,背靠吉利集团的极氪…...