第十届御网杯CTF赛道-wp
简单的题简单的一批,难的题又抽象完了,还有虽然一个附件可解但是必须多拿几个附件总结规律才会解的题 WEB-Snake_Game 打开靶机,看到贪吃蛇游戏,需300分获flag,初始分数0 F12查看源码,checkWin(score)直接将客户端分数POST到index.php,服务端无任何校验 直接curl -X POST http://120.27.146.76:22226/index.php -d “score=300”或者在burpsuite抓包校验分数的包改成300分 服务端返回flag{9afd633154414519bd1569bfba021c7a} WEB-PHP_payment 打开靶机,商城flag商品售价99999金币,初始余额仅20 审计附件源码:apply_coupon.php将Base64解码后直接unserialize(),无签名验证 models.php中PromoManager.__destruct()将promo_credit加到session余额 构造payload: O:12:”PromoManager”:2:{s...
RASP的绕过
古早的 RASP 主要是通过两种思路绕过 一种是根据 Runtime.exec() 方法,底层是 ProcessBuilder 再底层 ProcessImpl 更底层的 forkandexec 方法在早两年前是很有效的绕过思路,当时的 RASP 产品并没有 hook native 方法,现在一些高级的 RASP 已经可以 hook native 方法了,JNI 绕过和 forkandexec** **方法绕过就都不太行了 另一种则是开启一个线程来执行命令,让 RASP 失去上下文堆栈的分析数据,使得算法失效, JRASP 提供了解决思路,通过 java.lang.InheritableThreadLocal类在父线程创建子线程时,向子线程传递变量 简单来说就是两种思路: 绕过黑名单 利用更底层的技术进行绕过 按照这两种思路,我们可以延申出许多绕过 RASP 的方法 JNI/JNARASP 工作在 JVM 字节码层面,他能 hook 的也只有 java 相关的方法,那如果我们跳出 JVM,RASP 也会失效 JNI利用思路很简单就是利用 c 语言生成 dll 文件,然...
RASP的基础
什么是 RASPRASP,全称为 Runtime application self-protection,将保护程序像疫苗一样注入到应用程序中,应用程序融为一体,能实时检测和阻断安全攻击,使应用程序具备自我保护能力,当应用程序遭受到实际攻击伤害,就可以自动对其进行防御,而不需要进行人工干预 在攻防中,大部分都是基于流量规则的 waf 和态感,waf 误报率高,也容易被绕过,而且需要人工干预,而RASP技术防御是根据请求上下文进行拦截的,和 WAF 对比非常明显,我们用一个 sql 的攻击来举例 攻击者对http://xxx.com/index.do?id=1进行测试,一般情况会通过一些 sql 语句的拼接来验证是否有注入,这时会对 url 进行大量发包,如下: http://xxx.com/index.do?id=1' and 1=2– 但是由于程序内部的过滤,实际执行的 sql 语句可能是这样: select id,name,age from home where id=’1 ' and 1=2–’ 对于 WAF 来说,只要你的流量包命中 ...
furryCTF 2025-wp
MISC签到题响应包直接搜 furry CyberChefchef 编码 https://tio.run/#chef 这个网站在线解 WEBezmd5数组直接绕说是 PyEditor123456789101112131415# 1. 劫持模块级 exitglobals()['exit'] = lambda *a, **k: None# 2. 构造一个合法的上下文管理器class FakeFile: def __enter__(self): return self def __exit__(self, exc_type, exc, tb): return False def write(self, data): print(data)# 3. 劫持模块级 openglobals()['open'] = lambda *a, **k: FakeFile() CCpreview根据题目提示是个经典的云安全的问题,AWS 的元数据在169.254.169.254 输入: 1http:/...
ciscn2026初赛wp-web
打的时候刚好是刚刚期末考完的哪个周末,已经放飞自我了状态非常差,几乎什么都没做出来,本来都不准备看了,但是还是复盘一下 redisNext.js 框架的网站,用最近的cve来打,但是我最近没有关注相关漏洞,所以不知道,也没细看这道题 AI_WAF我用到的是内联注释绕WAF: ‘ /!50000union/ /!50000select/ 1,2,3#获取数据库的名和版本‘ /!50000union/ /!50000select/ -1,database(),version()#得到 数据库名nexadata获取表名‘ /!50000union/ /!50000select/ -1,group_concat(table_name),3 from information_schema.tables where table_schema=’nexadata’#发现两个表:Article where_is_my_flagggggg获取列名‘ /!500...
RASP的基础和绕过
什么是 RASPRASP,全称为 Runtime application self-protection,将保护程序像疫苗一样注入到应用程序中,应用程序融为一体,能实时检测和阻断安全攻击,使应用程序具备自我保护能力,当应用程序遭受到实际攻击伤害,就可以自动对其进行防御,而不需要进行人工干预 在攻防中,大部分都是基于流量规则的 waf 和态感,waf 误报率高,也容易被绕过,而且需要人工干预,而RASP技术防御是根据请求上下文进行拦截的,和 WAF 对比非常明显,我们用一个 sql 的攻击来举例 攻击者对http://xxx.com/index.do?id=1进行测试,一般情况会通过一些 sql 语句的拼接来验证是否有注入,这时会对 url 进行大量发包,如下: http://xxx.com/index.do?id=1' and 1=2– 但是由于程序内部的过滤,实际执行的 sql 语句可能是这样: select id,name,age from home where id=’1 ' and 1=2–’ 对于 WAF 来说,只要你的流量包命中 ...
文件解压之过(Zip Slip)漏洞导致 Python 代码执行
Python 中负责解压压缩文件的代码实现上并不安全,存在目录遍历漏洞,攻击者可以利用该漏洞覆盖**__init__.py**文件,实现任意代码执行。 在PHP中,实现代码执行最为简单的一种方式就是利用PHP中不安全的文件上传处理逻辑。如果你可以欺骗文件上传逻辑,上传任意PHP文件,那么你就可以执行任意PHP代码。 然而,如果我们面对的是使用Go、Node.js、Python、Ruby等编写的现代Web框架时,即使我们把.py或者.js文件成功上传到服务器上,通过URL请求这些文件通常并不会返回任何结果,即使我们可以通过URL来访问这些资源,也不会触发任何代码执行动作 但是我们可以通过构造压缩包实现代码执行,精心构造的压缩文件虽然看起来人畜无害,但如果负责解压此类文件的代码本身并不安全,那么这种文件就会带来安全风险。 首先我们来了解一下 Zip Slip 漏洞 ZIP 路径穿越漏洞许多应用会从用户上传的 ZIP 压缩包中解压文件。但 ZIP 文件内可以包含 伪造路径,如: 1../../../../tmp/evil.py 如果程序在解压时不验证路径安全性,就可能将这些文件 ...
BehinderV4魔改
“冰蝎”(Behinder)是一个动态二进制加密网站管理客户端,相比较于传统的老牌工具“菜刀”而言,对webshell的流量进行了相应的加密。”冰蝎”客户端基于JAVA,所以可以跨平台使用,随着版本的升级,兼容性也随之提升。主要功能为:基本信息、命令执行、虚拟终端、文件管理、Socks代理、反弹shell、数据库管理、自定义代码等,功能非常强大,是现如今必不可少的渗透测试工具之一 如今借助大模型,ai 对流量中木马特征的监测已经越来越准确,可冰蝎早已不再更新,木马上传上去之间就落地成盒,所以我们要对冰蝎马在原本的基础上进行改造 冰蝎特征冰蝎有两个强特征,分别是 和数据包一大堆加密 如果这个数据包可以用冰蝎的传输协议解密,那就实锤为冰蝎马 除此之外还有数个弱特征例如 connection:keep-alive ,固定的 ua 头等 所以我们的魔改需要解决两个问题: 绕过识别(魔改打乱指纹信息) 绕过查杀(新增加密算法) JAP 反编译打包构建https://www.decompiler.com/ 在这个网站在线反编译,然后下载下来(也可以用 jd-gui 工具反编译) 在 i...
Python多线程
首先我们要了解一点基础知识 线程与进程进程(Process)进程是操作系统中资源分配的最小单位,简单来说,一个进程就是一个正在运行的程序的实例,操作系统会为每个进程分配独立的内存空间、文件句柄、CPU 时间、网络端口等资源。不同的进程之间相互独立,一个进程崩了不会影响另一个进程 在 Python 中,一个multiprocessing.Process() 启动的任务就是一个新的子进程,它拥有独立的 Python 解释器和内存空间 线程(Thread)线程是进程中的执行单元,是操作系统中能进行调度的最小单位 一个进程可以有多个线程,多个线程共享同一个进程的内存和资源,每个线程只负责执行一部分任务。 在 Python 里,threading.Thread() 或 ThreadPoolExecutor() 启动的就是线程 Python 中的区别和限制Python 中有一个叫 GIL(全局解释器锁) 的机制,这个机制让同一时刻只能有一个线程在执行 Python 字节码,所以对于 CPU 密集型任务,多线程的效果并不大,但是对于 I/O 密集型任务(网络请求、文件操作等),多线...
Docker基础
docker 基础常见命令: 命令 说明 文档地址 docker pull 拉取镜像 docker pull docker push 推送镜像到DockerRegistry docker push docker images 查看本地镜像 docker images docker rmi 删除本地镜像 docker rmi docker run 创建并运行容器(不能重复创建) docker run docker stop 停止指定容器 docker stop docker start 启动指定容器 docker start docker restart 重新启动容器 docker restart docker rm 删除指定容器 docs.docker.com docker ps 查看容器 docker ps docker logs 查看容器运行日志 docker logs docker exec 进入容器 docker exec docker save 保存镜像到本地压缩文件 docker save docker ...








