Python awd相关库
在 AWD 赛事中,时间紧迫且操作频繁,熟练掌握以下 Python 标准库与第三方库,是实现自动化攻击与批量化运维防御的基础。
1 Python 标准库:系统交互与底层网络标准库无需额外安装,是编写高兼容性、高可用性脚本的首选。
1.1 操作系统与环境交互:os & sys在 AWD 中,通常需要遍历目录读取源码、备份文件,或者根据不同操作系统环境调整脚本逻辑。
os 模块:主要用于文件和目录操作。
os.system() / os.popen():执行系统命令(在现代 Python 开发中,更推荐使用 subprocess)。
os.walk():递归遍历目录树,常用于 批量查找后门(Webshell) 或备份整个 Web 目录。
sys 模块:主要用于与 Python 解释器交互。
sys.argv:获取命令行参数,用于编写灵活的 CLI 工具(如 python exp.py http://target 80)。
sys.exit():在检测到目标不可达或触发防御机制时安全退出脚本。
1.2 进程管理与命令执行:subprocess完全理解。在深入复杂的攻防脚本 ...
MathJax 语法
MathJax 语法一、 行内公式使用单个美元符号 $ 包裹公式。
示例:
\sqrt{x^2 + y^2}$$ 会显示为 $\sqrt{x^2 + y^2}$。
## 二、块级公式
使用双美元符号 $$$$ 包裹公式。
**示例:**
123$$\sum_{i=1}^{n} i = \frac{n(n+1)}{2}$$
会显示为:\sum_{i=1}^{n} i = \frac{n(n+1)}{2}
## 三、 常用数学符号分类
### 1. 运算符号
| 符号 | 名称 | 渲染后 | 未渲染 |
| ----------- | ---------- | -------------- | ----------- |
| $+$ | 加号 | $a + b$ | `a + b` |
| $-$ | 减号 | $a - b$ | `a - b` ...
常见日志种类和位置
应用程序的种类:
.exe .inl .conf.config.ymal.yml.properties
日志:
.log .csv .txt .bat
特殊:
apache .out
访问时间可以找.ink
windows基础知识
windows基础知识用户与用户组在windows不同用户有着不同的权限,包括:完全控制、修改、读取与执行、列出文件夹内容、读取、写入。而超级管理员和system用户权限最高
内置用户
Administrator:系统管理员,拥有完全控制权
guest:来宾账号,提供访问共享资源的网络用户使用,仅拥有基本权限,默认被禁用
查看用户1net user
查看用户详细信息1net user administrator
用户也可以属于多个用户组,最常见的用户组是 管理员组(Administrators)、普通用户组(Users)、iis用户组(IIS IUSERS)、来宾组(Guests)、远程登录组(Remote Desktop Users)
内置用户组
administrators组
users组,新建用户默认所属组
guests组,权限最低
iss__users组,信息服务使用的内置组用户信息的详细及解析
1whoami 查看用户名称
123456789101112131415161718192021222324252627282930313233343536373839404 ...
windows权限维持
1 php不死马权限维持123456789101112131415161718<?phpignore_user_abort(); //关掉浏览器,PHP脚本也可以继续执行 .set_time_limit(0);//通过set_time_limit(0)可以让程序无限制的执行下去$interval = 5; // 每隔*秒运行do {$filename = 'test.php';if(file_exists($filename)) {echo "xxx";}else {$file = fopen("test.php", "w");$txt = "<?php phpinfo();?>\n";fwrite($file, $txt);fclose($file);}sleep($interval);} while (true);?>
这段代码的意思是就是 只要访问一次1.php文件 该目录下就会生成test.php ...
指纹识别
WAF即WEB Application Firewall,web应用防火墙,用于过滤HTTP/HTTPS的请求
作用
文件上传漏洞
1 概念文件上传漏洞是指由于程序员未对上传的文件进行严格的验证和过滤而导致的用户可以越过本身权限向服务器上传可执行的动态脚本文件。
1.1 危害非法用户可以上传恶意文件控制整个网站,甚至是控制服务器,这个恶意脚本文件,又被称为webshell后门,可以很方便的查看服务器信息、目录、执行系统文件等
1.2 有关文件上传的知识1.2.1 过程客户端 选择发送的文件->服务器接收->网站程序判断->移动到指定路径
1.3 php文件上传代码文件上传时会返回一些代码给客户端,客户端会根据这些值判断上传是否正常
值:0
没有错误发生,上传成功
值:1
上传文件超过php.ini 中 upload_maax_filesize 限制大小
值:2
上传文件大小超过HTML表单中MAX_FILE_SIZE选项限定的值
值:3
文件只有部分被上传
值:4
没有文件上传
2 分类文件上传漏洞可分为直接文件上传和有条件的文件上传
直接文件上传:属于高危漏洞的一种,能直接getshell,没有任何限制,攻击者很容易通过上传点,获取网站控制权
有条件的文件上传:一般是开发 ...
文件包含漏洞
概念和SQL注入等攻击方式一样,文件包含漏洞也是一种注入型漏洞,其本质就是输入一段用户能够控制的脚本或者代码,并让服务端执行。
什么叫包含呢?以PHP为例,我们常常把可重复使用的函数写入到单个文件中,在使用该函数时,直接调用此文件,而无需再次编写函数,这一过程叫做包含。
有时候由于网站功能需求,会让前端用户选择要包含的文件,而开发人员又没有对要包含的文件进行安全考虑,就导致攻击者可以通过修改文件的位置来让后台执行任意文件,从而导致文件包含漏洞。
种类以PHP为例,常用的文件包含函数有以下四种include(),require(),include_once(),require_once()
区别如下:
require():找不到被包含的文件会产生致命错误,并停止脚本运行
include():找不到被包含的文件只会产生警告,脚本继续执行
require_once():与require()类似:唯一的区别是如果该文件的代码已经被包含,则不会再次包含
include_once():与include()类似:唯一的区别是如果该文件的代码已经被包含,则不会再次包含
伪协议<!DOCTYP ...
Java反序列化
概念序列化和反序列化的区别
序列化:把Java对象转换为字节序列的过程
反序列化:把字节序列转化为Java对象的过程
出现点
功能特性
反序列化操作一般应用在导入模板文件、网络连通、数据传输、日志格式化存储、对象数据落磁盘或DB存储等业务场景,因此审计过程应重点关注这些功能模块
数据特性
一段数据以rO0AB开头,基本可以确定是JAVA序列化base64加密的数据
以aced开头,是java序列化数据的16进制
具体出现
网络通信:RMI、JMX、JMS、RPC框架(如Dubbo)或使用原生Java序列化协议的Socket通信。
Web应用:通过HTTP请求参数、Cookie、Session(HttpSession存储于文件或Redis)传入并反序列化用户可控的对象。
缓存与持久化:从文件系统或缓存(如Redis、Ehcache)读取序列化对象(.ser文件或字节流)。
第三方组件:使用了存在不安全反序列化漏洞的第三方库(如Apache Commons Collections, Spring, Fastjson等)。
利用Ysoseria集成的jar配合生成、特性的 ...
python反序列化
函数利用
pickle模块
pickle dump(obj,file):将对象序列化后保存到文件
pickle load(file):读取文件,将文件中的序列化内容反序列化为对象
pickle dumps(obj):将对象序列化成字符串格式的字节流
pickle loads(bytes_obj):将字符串格式的字节流反序列化为对象
魔术方法__reduce__():反序列化调用__reduce_ex__():反序列化时调用__setstate__():反序列化时调用__getstate__():序列化时调用







